Part Number Hot Search : 
CS82C50A N5400 N4001 M200Z 4069UBF CP2141 MH8S72 EL5175IY
Product Description
Full Text Search
 

To Download ST10F280 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
 ST10F280
16-BIT MCU WITH MAC UNIT, 512K BYTE FLASH MEMORY AND 18K BYTE RAM
PRODUCT PREVIEW
s
s
s
s
s s s
GPT2
s s s
HIGH PERFORMANCE CPU WITH DSP FUNCTIONS - 16-BIT CPU WITH 4-STAGE PIPELINE. - 50ns INSTRUCTION CYCLE TIME AT 40MHz CPU CLOCK. - MULTIPLY/ACCUMULATE UNIT (MAC) 16 X 16-BIT MULTIPLICATION, 40-BIT ACCUMULATOR - REPEAT UNIT. - ENHANCED BOOLEAN BIT MANIPULATION FACILITIES. - ADDITIONAL INSTRUCTIONS TO SUPPORT HLL AND OPERATING SYSTEMS. - SINGLE-CYCLE CONTEXT SWITCHING SUPPORT. MEMORY ORGANIZATION - 512K BYTE ON-CHIP FLASH MEMORY SINGLE VOLTAGE WITH ERASE/PROGRAM CONTROLLER. - 100K ERASING/PROGRAMMING CYCLES. - 20 YEAR DATA RETENTION TIME - UP TO 16M BYTE LINEAR ADDRESS SPACE FOR CODE AND DATA (5M BYTE WITH CAN). - 2K BYTE ON-CHIP INTERNAL RAM (IRAM). - 16K BYTE EXTENSION RAM (XRAM). FAST AND FLEXIBLE BUS - PROGRAMMABLE EXTERNAL BUS CHARACTERISTICS FOR DIFFERENT ADDRESS RANGES. - 8-BIT OR 16-BIT EXTERNAL DATA BUS. - MULTIPLEXED OR DEMULTIPLEXED EXTERNAL ADDRESS/DATA BUSES. - FIVE PROGRAMMABLE CHIP-SELECT SIGNALS. - HOLD-ACKNOWLEDGE BUS ARBITRATION SUPPORT. INTERRUPT - 8-CHANNEL PERIPHERAL EVENT CONTROLLER FOR SINGLE CYCLE, INTERRUPT DRIVEN DATA TRANSFER. - 16-PRIORITY-LEVEL INTERRUPT SYSTEM WITH 56 SOURCES, SAMPLE-RATE DOWN TO 25ns. TWO MULTI-FUNCTIONAL GENERAL PURPOSE TIMER UNITS WITH 5 TIMERS. TWO 16-CHANNEL CAPTURE/COMPARE UNITS A/D CONVERTER - 2X16-CHANNEL 10-BIT. - 4.85S CONVERSION TIME - ONE TIMER FOR ADC CHANNEL INJECTION 8-CHANNEL PWM UNIT SERIAL CHANNELS - SYNCHRONOUS/ASYNC SERIAL CHANNEL - HIGH-SPEED SYNCHRONOUS CHANNEL. FAIL-SAFE PROTECTION - PROGRAMMABLE WATCHDOG TIMER. - OSCILLATOR WATCHDOG.
PBGA208 (23 x 23 x 1.96 - Pitch 1.27 mm) (Plastic Bold Grid Array) ORDER CODE: ST10F280-JT3
s s s
TWO CAN 2.0b INTERFACES OPERATING ON ONE OR TWO CAN BUSSES (30 OR 2X15 MESSAGE OBJECTS) ON-CHIP BOOTSTRAP LOADER CLOCK GENERATION - ON-CHIP PLL. - DIRECT OR PRESCALED CLOCK INPUT.
s
UP TO 143 GENERAL PURPOSE I/O LINES - INDIVIDUALLY PROGRAMMABLE AS INPUT, OUTPUT OR SPECIAL FUNCTION. - PROGRAMMABLE THRESHOLD (HYSTERESIS).
s s s s s
IDLE AND POWER DOWN MODES MAXIMUM CPU FREQUENCY 40MHz PACKAGE PBGA 208 BALLS (23mm x 23mm x 1.96 mm - PITCH 1.27mm). SINGLE VOLTAGE SUPPLY: 5V 10% (EMBEDDED REGULATOR FOR 3.3 V CORE SUPPLY). TEMPERATURE RANGE: -40 +125C
32 512K Byte Flash Memory CPU-Core and MAC Unit 16 16 2K Byte Internal RAM
16 16K Byte XRAM PEC 16
Watchdog Oscillator and PLL
P4.5 CAN1_RxD P4.6 CAN1_TxD P4.4 CAN2_RxD P4.7 CAN2_TxD
CAN1 Interrupt Controller CAN2 16
XT AL1 3.3V
XT AL2
V oltage Regulator
Port 4 Port 1 Port 0
GPT1
ASC usart
CAPCOM2
10-Bit ADC
PWM
16
External Bus Controller
CAPCOM1
SSC
16
Port 2 8
16
8
BRG Port 3 15
BRG Port 7 8 Port 8
Port 6 8
Port 5 16
P7.7 T rigger for ADC channel injection
XPORT10 16
XPORT9 16
XPWM 4
XTIMER XADCINJ
External connexion
March 2003
This is advance information on a new product now in development or undergoing evaluation. Details are subject to change without notice.
1/186
ST10F280
TABLE OF CONTENTS 123455.1 5.2 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.4 5.5 5.5.1 5.5.2 5.5.3 5.6 5.6.1 5.6.2 5.6.3 5.6.4 5.6.5 66.1 6.1.1 6.1.1.1 6.1.1.2 6.1.1.3 6.2 6.3 77.1 7.2 88.1 2/186
INTRODUCTION ........................................................................................................ BALL DATA ............................................................................................................... FUNCTIONAL DESCRIPTION ................................................................................... MEMORY ORGANIZATION ....................................................................................... INTERNAL FLASH MEMORY ................................................................................... OVERVIEW ................................................................................................................ OPERATIONAL OVERVIEW ...................................................................................... ARCHITECTURAL DESCRIPTION ............................................................................ Read Mode ................................................................................................................. Command Mode ......................................................................................................... Flash Status Register ................................................................................................. Flash Protection Register ........................................................................................... Instructions Description .............................................................................................. Reset Processing and Initial State .............................................................................. FLASH MEMORY CONFIGURATION ........................................................................ APPLICATION EXAMPLES ....................................................................................... Handling of Flash Addresses ...................................................................................... Basic Flash Access Control ........................................................................................ Programming Examples ............................................................................................. BOOTSTRAP LOADER ............................................................................................ Entering the Bootstrap Loader .................................................................................... Memory Configuration After Reset ............................................................................. Loading the Startup Code ........................................................................................... Exiting Bootstrap Loader Mode .................................................................................. Choosing the Baud Rate for the BSL ......................................................................... CENTRAL PROCESSING UNIT (CPU) ..................................................................... MULTIPLIER-ACCUMULATOR UNIT (MAC) ............................................................. Features ..................................................................................................................... Enhanced Addressing Capabilities .............................................................................. Multiply-Accumulate Unit ............................................................................................. Program Control .......................................................................................................... INSTRUCTION SET SUMMARY ................................................................................ MAC COPROCESSOR SPECIFIC INSTRUCTIONS ................................................. EXTERNAL BUS CONTROLLER .............................................................................. PROGRAMMABLE CHIP SELECT TIMING CONTROL ............................................ READY PROGRAMMABLE POLARITY ..................................................................... INTERRUPT SYSTEM ............................................................................................... EXTERNAL INTERRUPTS .........................................................................................
6 7 17 18 21 21 21 23 23 23 23 25 25 29 29 29 29 30 31 34 34 35 36 36 37 38 39 40 40 40 40 41 42 46 46 47 49 49
ST10F280
8.2 8.3 8.4 910 10.1 10.2 11 11.1 11.2 11.2.1 11.2.1.1 11.2.1.2 11.2.1.3 11.2.1.4 11.2.2 11.2.3 11.2.4 11.2.5 12 12.1 12.1.1 12.1.2 12.1.3 12.1.4 12.2 12.2.1 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.7 12.7.1 12.8 12.8.1 12.9 12.9.1 INTERRUPT REGISTERS AND VECTORS LOCATION LIST .................................. INTERRUPT CONTROL REGISTERS ....................................................................... EXCEPTION AND ERROR TRAPS LIST ................................................................... CAPTURE/COMPARE (CAPCOM) UNITS ................................................................ GENERAL PURPOSE TIMER UNIT .......................................................................... GPT1 .................................................................................................................... ...... GPT2 .......................................................................................................................... PWM MODULE .......................................................................................................... STANDARD PWM MODULE ...................................................................................... NEW PWM MODULE : XPWM ................................................................................... Operating Modes ........................................................................................................ Mode 0: Standard PWM Generation (Edge Aligned PWM) ......................................... Mode 1: Symmetrical PWM Generation (Center Aligned PWM) ................................. Burst Mode ................................................................................................................ Single Shot Mode ...................................................................................................... XPWM Module Registers ........................................................................................... Interrupt Request Generation ..................................................................................... XPWM Output Signals ................................................................................................ XPOLAR Register (polarity of the XPWM channel) .................................................... PARALLEL PORTS ................................................................................................... INTRODUCTION ........................................................................................................ Open Drain Mode ....................................................................................................... Input Threshold Control ............................................................................................ Output Driver Control ................................................................................................ Alternate Port Functions ............................................................................................. PORT0 ........................................................................................................................ Alternate Functions of PORT0 .................................................................................... PORT1 ........................................................................................................................ Alternate Functions of PORT1 .................................................................................... PORT 2 ....................................................................................................................... Alternate Functions of Port 2 ..................................................................................... PORT 3 ....................................................................................................................... Alternate Functions of Port 3 ...................................................................................... PORT 4 ....................................................................................................................... Alternate Functions of Port 4 ...................................................................................... PORT 5 ....................................................................................................................... Port 5 Schmitt Trigger Analog Inputs .......................................................................... PORT 6 ....................................................................................................................... Alternate Functions of Port 6 ...................................................................................... PORT 7 ....................................................................................................................... Alternate Functions of Port 7 ...................................................................................... 50 52 53 54 57 57 58 60 60 61 62 62 63 64 65 66 68 68 69 70 72 72 73 73 75 76 77 79 79 80 81 84 85 87 88 92 93 93 94 95 96
3/186
ST10F280
12.10 12.10.1 12.11 12.12 12.12.1 12.12.2 13 13.1 13.2 13.3 13.3.1 13.3.2 13.3.2.1 13.3.2.2 13.3.2.3 13.3.2.4 13.3.2.5 13.3.3 13.3.3.1 13.3.3.2 13.3.3.3 14 14.1 14.1.1 14.1.2 14.2 15 15.1 15.1.1 15.1.2 15.2 15.3 15.4 15.5 15.6 16 17 17.1 17.2 4/186
PORT 8 ....................................................................................................................... Alternate Functions of Port 8 ...................................................................................... XPORT 9 .................................................................................................................... XPORT 10 .................................................................................................................. Alternate Functions of XPort 10 .................................................................................. New Disturb Protection on Analog Inputs ................................................................... A/D CONVERTER ...................................................................................................... A/D CONVERTER MODULE ...................................................................................... MULTIPLEXAGE OF TWO BLOCKS OF 16 ANALOG INPUTS ................................ XTIMER PERIPHERAL (TRIGGER FOR ADC CHANNEL INJECTION) ................... Main Features ............................................................................................................. Register Description ................................................................................................... TCR : Timer Control Register ...................................................................................... XTSVR :Timer Start Value Register ............................................................................ XTEVR : Timer End Value Register ............................................................................ XTCVR : Timer Current Value Register....................................................................... Registers Mapping....................................................................................................... Block Diagram ........................................................................................................... Clocks .......................................................................................................................... Registers ..................................................................................................................... Timer output (XADCINJ).............................................................................................. SERIAL CHANNELS ................................................................................................. ASYNCHRONOUS / SYNCHRONOUS SERIAL INTERFACE (ASCO) .................... ASCO in Asynchronous Mode .................................................................................... ASCO in Synchronous Mode ...................................................................................... HIGH SPEED SYNCHRONOUS SERIAL CHANNEL (SSC) ..................................... CAN MODULES ......................................................................................................... MEMORY MAPPING .................................................................................................. CAN1 .................................................................................................................. ........ CAN2 .................................................................................................................. ........ CAN BUS CONFIGURATIONS .................................................................................. REGISTER AND MESSAGE OBJECT ORGANIZATION .......................................... CAN INTERRUPT HANDLING ................................................................................. THE MESSAGE OBJECT .......................................................................................... ARBITRATION REGISTERS ...................................................................................... WATCHDOG TIMER .................................................................................................. SYSTEM RESET ........................................................................................................ ASYNCHRONOUS RESET (LONG HARDWARE RESET) ....................................... SYNCHRONOUS RESET (WARM RESET) ..............................................................
99 99 101 103 103 104 105 105 106 107 107 108 108 109 109 109 109 110 110 110 111 112 112 112 114 116 118 118 118 118 118 119 121 124 126 127 129 129 130
ST10F280
17.3 17.4 17.5 17.6 18 18.1 18.2 18.2.1 18.2.2 19 19.1 19.2 20 20.1 20.2 20.3 20.3.1 20.3.2 20.4 20.4.1 20.4.2 20.4.3 20.4.4 20.4.5 20.4.6 20.4.7 20.4.8 20.4.9 20.4.10 20.4.11 20.4.12 20.4.13 20.4.14 20.4.14.1 20.4.14.2 21 22 SOFTWARE RESET .................................................................................................. WATCHDOG TIMER RESET ..................................................................................... RSTOUT PIN AND BIDIRECTIONAL RESET ............................................................ RESET CIRCUITRY ................................................................................................... POWER REDUCTION MODES ................................................................................. IDLE MODE ................................................................................................................ POWER DOWN MODE .............................................................................................. Protected Power Down Mode ..................................................................................... Interruptable Power Down Mode ................................................................................ SPECIAL FUNCTION REGISTER OVERVIEW ......................................................... IDENTIFICATION REGISTERS ................................................................................. SYSTEM CONFIGURATION REGISTERS ................................................................ ELECTRICAL CHARACTERISTICS ......................................................................... ABSOLUTE MAXIMUM RATINGS ............................................................................. PARAMETER INTERPRETATION ............................................................................. DC CHARACTERISTICS ........................................................................................... A/D Converter Characteristics .................................................................................... Conversion Timing Control ....................................................................................... AC CHARACTERISTICS ............................................................................................ Test Waveforms ....................................................................................................... Definition of Internal Timing ........................................................................................ Clock Generation Modes ............................................................................................ Prescaler Operation .................................................................................................... Direct Drive ................................................................................................................. Oscillator Watchdog (OWD) ....................................................................................... Phase Locked Loop .................................................................................................... External Clock Drive XTAL1 ....................................................................................... Memory Cycle Variables ............................................................................................. Multiplexed Bus .......................................................................................................... Demultiplexed Bus ...................................................................................................... CLKOUT and READY ................................................................................................. External Bus Arbitration .............................................................................................. High-Speed Synchronous Serial Interface (SSC) Timing ........................................... Master Mode................................................................................................................ Slave mode.................................................................................................................. PACKAGE MECHANICAL DATA ........................................................................... 131 131 131 132 135 135 135 136 136 139 148 149 155 155 155 155 158 159 160 160 160 161 162 162 162 162 163 164 165 171 177 179 181 181 182 183 184
5/186
ORDERING INFORMATION ......................................................................................
ST10F280
1 - INTRODUCTION The ST10F280 is a new derivative of the ST Microelectronics ST10 family of 16-bit single-chip CMOS microcontrollers. It combines high CPU performance (up to 20 million instructions per second) with high peripheral functionality and enhanced I/O-capabilities. It also provides on-chip high-speed single voltage FLASH memory, on-chip high-speed RAM, and clock generation via PLL. ST10F280 is processed in 0.35m CMOS technology. The MCU core and the logic is supplied with a 5V to 3.3V on chip voltage regulator. The part is supplied with a single 5V supply and I/Os work at 5V. The device is upward compatible with the ST10F269 device, with the following set of differences: - Two supply pins (DC1,DC2) on the PBGA-208 package are used for decoupling the internally generated 3.3V core logic supply. Do not connect these two pins to 5.0V external supply. Instead, these pins should be connected to a Figure 1 : Logic Symbol VDD
XTAL1 XTAL2 RSTIN RSTOUT VAREF VAGND NMI EA READY ALE RD WR/WRL Port 5 16-bit XPort10 16-bit ST10F280
decoupling capacitor (ceramic type, value 330nF). - The A/D Converter characteristics stay identical but 16 new input channel are added. A bit in a new register (XADCMUX) control the multiplexage between the first block of 16 channel (on Port5) and the second block (on XPort10). The conversion result registers stay identical and the software management can determine the block in use. A new dedicated timer controls now the ADC channel injection mode on the input CC31 (P7.7). The output of this timer is visible on a dedicated pin (XADCINJ) to emulate this new functionnality. - A second XPWM peripheral (4 new channels) is added. Four dedicated pins are reserved for the outputs (XPWM[0:3]) - A new general purpose I/O port named XPORT9 (16 bits) is added. Due to the bit addressing management, it will be different from other standard general purpose I/O ports.
VSS
Port 0 16-bit Port 1 16-bit Port 2 16-bit Port 3 15-bit Port 4 8-bit Port 6 8-bit Port 7 8-bit
Port 8 8-bit
XPort 9 16-bit XPWM 4-bit XADCINJ DC1 DC2
Decoupling capacitor for internal regulator
6/186
ST10F280
2 - BALL DATA The ST10F280 package is a PBGA of 23 x 23 x 1.96 mm. The pitch of the balls is 1.27 mm. The signal assignment of the 208 balls is described in Figure 2 for the configuration and in Table 1 for the ball signal assignment. This package has 25 additional thermal balls. Figure 2 : Ball Configuration (bottom view)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
U1
U XP10.15
U2
V AREF
U3
V AGND
U4
P5.5
U5
P5.9
U6
P5.13
U7
V SS
U8
V DD
U9
P2.7
U10
V SS
U11
DC2
U12
P2.13
U13
VSS
U14
V SS
U15
V DD
U16
V SS
U17
V SS U
T1
T XP10.14
T2
P5.0
T3
P5.2
T4
P5.4
T5
P5.8
T6
P5.12
T7
P2.0
T8
P2.3
T9
P2.4
T10
P2.8
T11
P2.11
T12
P2.15
T13
P3.1
T14
P3.4
T15
VSS
T16
V SS
T17
P3.15 T
R1
R
R2
R3
P5.1
R4
P5.3
R5
P5.7
R6
P5.11
R7
P5.15
R8
P2.2
R9
P2.6
R10
P2.9
R11
P2.12
R12
P3.0
R13
P3.3
R14
P3.6
R15
P3.8
R16
P3.9
R17
V SS R
XP10.13 XP10.12
P1
P
P2
P3
XP10.9
P4
XP10.8
P5
P5.6
P6
P5.10
P7
P5.14
P8
P2.1
P9
P2.5
P10
P2.10
P11
P2.14
P12
P3.2
P13
P3.5
P14
P3.7
P15
P3.11
P16
P3.12
P17
V DD P
XP10.11 XP10.10
N1
N XP10.7
N2
XP10.6
N3
XP10.5
N4
XP10.4
N14
P3.10
N15
VSS
N16
P4.0
N17
V SS N
M1
M XP10.3
M2
XP10.2
M3
XP10.1
M4
XP10.0
M14
P3.13
M15
P4.1
M16
P4.3
M17
RPD M
L1
L V SS
L2
P7.7
L3
XADCINJ
L4
V SS
L7
V SS
L8
V SS
L9
V SS
L10
V SS
L11
V SS
L14
P4.2
L15
P4.4
L16
P4.5
L17
V DD L
K1
K V DD
K2
P7.4
K3
P7.5
K4
P7.6
K7
V SS
K8
V SS
K9
V SS
K10
V SS
K11
V SS
K14
P4.6
K15
P4.7
K16
V SS
K17
V SS K
J1
J P7.3
J2
P7.2
J3
P7.1
J4
P7.0
J7
V SS
J8
V SS
J9
V SS
J10
V SS
J11
V SS
J14
RD
J15
WR
J16
READY
J17
ALE J
H1
H V SS
H2
P8.7
H3
P8.6
H4
P8.5
H7
V SS
H8
V SS
H9
V SS
H10
V SS
H11
V SS
H14
P0.2
H15
P0.1
H16
P0.0
H17
EA H
G1
G DC1
G2
P8.4
G3
P8.3
G4
V SS
G7
V SS
G8
V SS
G9
V SS
G10
V SS
G11
V SS
G14
P0.5
G15
P0.4
G16
P0.3
G17
V DD G
F1
F V SS
F2
P8.2
F3
P8.1
F4
P6.6
F14
P0.10
F15
P0.8
F16
P0.6
F17
V SS F
E1
E V DD
E2
P8.0
E3
P6.5
E4
P6.0
E14
P0.15
E15
P0.12
E16
P0.9
E17
P0.7 E
D1
D P6.7
D2
P6.4
D3
P6.1
D4
xpwm.0
D5
V SS
D6
V SS
D7
P1.13
D8
P1.9
D9
P1.6
D10
P1.2
D11
XP9.14
D12
XP9.11
D13
XP9.5
D14
XP9.2
D15
XP9.0
D16
P0.13
D17
P0.11 D
C1
C P6.3
C2
C3
C4
NMI
C5
P1.14
C6
P1.15
C7
P1.12
C8
P1.8
C9
P1.7
C10
P1.3
C11
P1.0
C12
XP9.13
C13
XP9.10
C14
XP9.6
C15
XP9.3
C16
XP9.1
C17
P0.14 C
xpwm.3 xpwm.1
B1
B P6.2
B2
xpwm.2
B3
V SS
B4
RSTOUT
B5
V SS
B6
V SS
B7
P1.11
B8
V SS
B9
V SS
B10
P1.4
B11
P1.1
B12
XP9.15
B13
XP9.12
B14
XP9.9
B15
XP9.7
B16
XP9.4
B17
V SS B
A1
A V SS
A2
V DD
A3
RSTIN
A4
V SS
A5
XTAL1
A6
XTAL2
A7
P1.10
A8
V SS
A9
V DD
A10
P1.5
A11
V SS
A12
V DD
A13
V SS
A14
V DD
A15
XP9.8
A16
V SS
A17
VSS A
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
7/186
ST10F280
Table 1 : Ball Description
Symbol P6.0 - P6.7 Ball Type Number I/O Function Port 6 is an 8-bit bidirectional I/O port. It is bit-wise programmable for input or output via direction bits. For a pin configured as input, the output driver is put into high-impedance state. Port 6 outputs can be configured as push/pull or open drain drivers. The following Port 6 pins also serve for alternate functions: E4 D3 B1 C1 D2 E3 F4 D1 P8.0 - P8.7 O O O O O I O O I/O P6.0 P6.1 P6.2 P6.3 P6.4 P6.5 P6.6 P6.7 CS0 CS1 CS2 CS3 CS4 HOLD HLDA BREQ Chip Select 0 Output Chip Select 1 Output Chip Select 2 Output Chip Select 3 Output Chip Select 4 Output External Master Hold Request Input Hold Acknowledge Output Bus Request Output
Port 8 is an 8-bit bidirectional I/O port. It is bit-wise programmable for input or output via direction bits. For a pin configured as input, the output driver is put into high-impedance state. Port 8 outputs can be configured as push/pull or open drain drivers. The input threshold of Port 8 is selectable (TTL or special). The following Port 8 pins also serve for alternate functions: P8.0 P8.1 P8.2 P8.3 P8.4 P8.5 P8.6 P8.7 CC16IO CC17IO CC18IO CC19IO CC20IO CC21IO CC22IO CC23IO CAPCOM2: CC16 Capture Input / Compare Output CAPCOM2: CC17 Capture Input / Compare Output CAPCOM2: CC18 Capture Input / Compare Output CAPCOM2: CC19 Capture Input / Compare Output CAPCOM2: CC20 Capture Input / Compare Output CAPCOM2: CC21 Capture Input / Compare Output CAPCOM2: CC22 Capture Input / Compare Output CAPCOM2: CC23 Capture Input / Compare Output
E2 F3 F2 G3 G2 H4 H3 H2 P7.0 - P7.7
I/O I/O I/O I/O I/O I/O I/O I/O I/O
Port 7 is an 8-bit bidirectional I/O port. It is bit-wise programmable for input or output via direction bits. For a pin configured as input, the output driver is put into high-impedance state. Port 7 outputs can be configured as push/pull or open drain drivers. The input threshold of Port 7 is selectable (TTL or special). The following Port 7 pins also serve for alternate functions: P7.0 P7.1 P7.2 P7.3 P7.4 P7.5 P7.6 P7.7 POUT0 POUT1 POUT2 POUT3 CC28IO CC29IO CC30IO CC31IO PWM Channel 0 Output PWM Channel 1 Output PWM Channel 2 Output PWM Channel 3 Output CAPCOM2: CC28 Capture Input / Compare Output CAPCOM2: CC29 Capture Input / Compare Output CAPCOM2: CC30 Capture Input / Compare Output CAPCOM2: CC31 Capture Input / Compare Output
J4 J3 J2 J1 K2 K3 K4 L2
O O O O I/O I/O I/O I/O
8/186
ST10F280
Table 1 : Ball Description (continued)
Symbol XP10.0 - XP10.15 Ball Type Number I Function XPort 10 is a 16-bit input-only port with Schmitt-Trigger characteristics. The pins of XPort10 also serve as the analog input channels (up to 16) for the A/D converter, where XP10.X equals ANx (Analog input channel x). M4 M3 M2 M1 N4 N3 N2 N1 P4 P3 P2 P1 R2 R1 T1 U1 P5.0 - P5.15 I I I I I I I I I I I I I I I I I XP10.0 XP10.1 XP10.2 XP10.3 XP10.4 XP10.5 XP10.6 XP10.7 XP10.8 XP10.9 XP10.10 XP10.11 XP10.12 XP10.13 XP10.14 XP10.15 Port 5 is a 16-bit input-only port with Schmitt-Trigger characteristics. The pins of Port 5 also serve as the analog input channels (up to 16) for the A/D converter, where P5.x equals ANx (Analog input channel x), or they serve as timer inputs: T2 R3 T3 R4 T4 U4 P5 R5 T5 U5 P6 R6 T6 U6 P7 R7 I I I I I I I I I I I I I I I I P5.0 P5.1 P5.2 P5.3 P5.4 P5.5 P5.6 P5.7 P5.8 P5.9 P5.10 P5.11 P5.12 P5.13 P5.14 P5.15 T6EUD T5EUD T6IN T5IN T4EUD T2EUD GPT2 Timer T6 External Up / Down Control Input GPT2 Timer T5 External Up / Down Control Input GPT2 Timer T6 Count Input GPT2 Timer T5 Count Input GPT1 Timer T4 External Up / Down Control Input GPT1 Timer T2 External Up / Down Control Input
9/186
ST10F280
Table 1 : Ball Description (continued)
Symbol P2.0 - P2.15 Ball Type Number I/O Function Port 2 is a 16-bit bidirectional I/O port. It is bit-wise programmable for input or output via direction bits. For a pin configured as input, the output driver is put into high-impedance state. Port 2 outputs can be configured as push/pull or open drain drivers. The input threshold of Port 2 is selectable (TTL or special). The following Port 2 pins also serve for alternate functions: P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 P2.8 P2.9 P2.10 P2.11 P2.12 P2.13 P2.14 P2.15 T7IN CC0IO CC1IO CC2IO CC3IO CC4IO CC5IO CC6IO CC7IO CC8IO EX0IN CC9IO EX1IN CC10IO EX2IN CC11IO EX3IN CC12IO EX4IN CC13IO EX5IN CC14IO EX6IN CC15IO EX7IN CAPCOM2 CAPCOM: CC0 Capture Input / Compare Output CAPCOM: CC1 Capture Input / Compare Output CAPCOM: CC2 Capture Input / Compare Output CAPCOM: CC3 Capture Input / Compare Output CAPCOM: CC4 Capture Input / Compare Output CAPCOM: CC5 Capture Input / Compare Output CAPCOM: CC6 Capture Input / Compare Output CAPCOM: CC7 Capture Input / Compare Output CAPCOM: CC8 Capture Input / Compare Output, Fast External Interrupt 0 Input CAPCOM: CC9 Capture Input / Compare Output, Fast External Interrupt 1 Input CAPCOM: CC10 Capture Input / Compare Output, Fast External Interrupt 2 Input CAPCOM: CC11 Capture Input / Compare Output, Fast External Interrupt 3 Input CAPCOM: CC12 Capture Input / Compare Output, Fast External Interrupt 4 Input CAPCOM: CC13 Capture Input / Compare Output, Fast External Interrupt 5 Input CAPCOM: CC14 Capture Input / Compare Output, Fast External Interrupt 6 Input CAPCOM: CC15 Capture Input / Compare Output, Fast External Interrupt 7 Input Timer T7 Count Input
T7 P8 R8 T8 T9 P9 R9 U9 T10 R10 P10 T11 R11 U12 P11 T12
I/O I/O I/O I/O I/O I/O I/O I/O I/O I I/O I I/O I I/O I I/O I I/O I I/O I I/O I I
10/186
ST10F280
Table 1 : Ball Description (continued)
Symbol P3.0 - P3.13, P3.15 Ball Type Number I/O Function Port 3 is a 15-bit (P3.14 is missing) bidirectional I/O port. It is bit-wise programmable for input or output via direction bits. For a pin configured as input, the output driver is put into high-impedance state. Port 3 outputs can be configured as push/pull or open drain drivers. The input threshold of Port 3 is selectable (TTL or special). The following Port 3 pins also serve for alternate functions: P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 P3.8 P3.9 P3.10 P3.11 P3.12 P3.13 P3.15 T0IN T6OUT CAPIN T3OUT T3EUD T4IN T3IN T2IN MRST MTSR TxD0 RxD0 BHE WRH SCLK CAPCOM Timer T0 Count Input GPT2 Timer T6 Toggle Latch Output GPT2 Register CAPREL Capture Input GPT1 Timer T3 Toggle Latch Output GPT1 Timer T3 External Up / Down Control Input GPT1 Timer T4 Input for Count / Gate / Reload / Capture GPT1 Timer T3 Count / Gate Input GPT1 Timer T2 Input for Count / Gate / Reload / Capture SSC Master-Receive / Slave-Transmit I/O SSC Master-Transmit / Slave-Receive O/I ASC0 Clock / Data Output (Asynchronous / Synchronous) ASC0 Data Input (Asynchronous) or I/O (Synchronous) External Memory High Byte Enable Signal, External Memory High Byte Write Strobe SSC Master Clock Output / Slave Clock Input
R12 T13 P12 R13 T14 P13 R14 P14 R15 R16 N14 P15 P16 M14 T17 P4.0 - P4.7
I O I O I I I I I/O I/O I/O O O I/O O I/O
CLKOUT System Clock Output (=CPU Clock)
Port 4 is an 8-bit bidirectional I/O port. It is bit-wise programmable for input or output via direction bits. For a pin configured as input, the output driver is put into high-impedance state. The input threshold is selectable (TTL or special). P4.6 & P4.7 outputs can be configured as push-pull or open-drain drivers. In case of an external bus configuration, Port 4 can be used to output the segment address lines:
N16 M15 L14 M16 L15 L16 K14 K15
O O O O O I O I O O O O
P4.0 P4.1 P4.2 P4.3 P4.4 P4.5 P4.6 P4.7
A16 A17 A18 A19 A20 CAN2_RxD A21 CAN1_RxD A22 CAN1_TxD A23 CAN2_TxD
Least Significant Segment Address Line Segment Address Line Segment Address Line Segment Address Line Segment Address Line CAN2 Receive Data Input Segment Address Line CAN1 Receive Data Input Segment Address Line, CAN_TxD CAN1 Transmit Data Output Most Significant Segment Address Line CAN2 Transmit Data Output
11/186
ST10F280
Table 1 : Ball Description (continued)
Symbol RD WR/WRL Ball Type Number J14 J15 O O Function External Memory Read Strobe. RD is activated for every external instruction or data read access. External Memory Write Strobe. In WR-mode this pin is activated for every external data write access. In WRL-mode this pin is activated for low byte data write accesses on a 16-bit bus, and for every data write access on an 8-bit bus. See WRCFG in register SYSCON for mode selection. Ready Input. The active level is programmable. When the Ready function is enabled, the selected inactive level at this pin during an external memory access will force the insertion of memory cycle time waitstates until the pin returns to the selected active level. Address Latch Enable Output. Can be used for latching the address into external memory or an address latch in the multiplexed bus modes. External Access Enable pin. A low level at this pin during and after Reset forces the ST10F280 to begin instruction execution out of external memory. A high level forces execution out of the internal Flash Memory. PORT0 consists of the two 8-bit bidirectional I/O ports P0L and P0H. It is bit-wise programmable for input or output via direction bits. For a pin configured as input, the output driver is put into high-impedance state. In case of an external bus configuration, PORT0 serves as the address (A) and address/data (AD) bus in multiplexed bus modes and as the data (D) bus in demultiplexed bus modes. Demultiplexed bus modes: Data Path Width: P0L.0 - P0L.7: P0H.0 - P0H.7: Multiplexed bus modes: Data Path Width: P0L.0 - P0L.7: P0H.0 - P0H.7: H16 H15 H14 G16 G15 G14 F16 E17 F15 E16 F14 D17 E15 D16 C17 E14 I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O P0L.0 P0L.1 P0L.2 P0L.3 P0L.4 P0L.5 P0L.6 P0L.7 P0H.0 P0H.1 P0H.2 P0H.3 P0H.4 P0H.5 P0H.6 P0H.7 8-bit AD0 - AD7 A8 - A15 16-bit AD0 - AD7 AD8 - AD15 8-bit D0 - D7 I/O 16-bit D0 - D7 D8 - D15
READY/ READY
J16
I
ALE EA
J17 H17
O I
PORT0: P0L.0 - P0L.7, P0H.0 - P0H.7
I/O
12/186
ST10F280
Table 1 : Ball Description (continued)
Symbol XPORT9.0 XPORT9.15 Ball Type Number I/O Function XPort 9 is a 16-bit bidirectional I/O port. It is bit-wise programmable for input or output via direction bits. For a pin configured as input, the output driver is put into high-impedance state. XPort 9 outputs can be configured as push/pull or open drain drivers. XPORT9.0 XPORT9.1 XPORT9.2 XPORT9.3 XPORT9.4 XPORT9.5 XPORT9.6 XPORT9.7 XPORT9.8 XPORT9.9 XPORT9.10 XPORT9.11 XPORT9.12 XPORT9.13 XPORT9.14 XPORT9.15
D15 C16 D14 C15 B16 D13 C14 B15 A15 B14 C13 D12 B13 C12 D11 B12
I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O
13/186
ST10F280
Table 1 : Ball Description (continued)
Symbol PORT1: P1L.0 - P1L.7, P1H.0 - P1H.7 Ball Type Number I/O Function PORT1 consists of the two 8-bit bidirectional I/O ports P1L and P1H. It is bit-wise programmable for input or output via direction bits. For a pin configured as input, the output driver is put into high-impedance state. PORT1 is used as the 16-bit address bus (A) in demultiplexed bus modes and also after switching from a demultiplexed bus mode to a multiplexed bus mode. The following PORT1 pins also serve for alternate functions: P1L.0 P1L.1 P1L.2 P1L.3 P1L.4 P1L.5 P1L.6 P1L.7 P1H.0 P1H.1 P1H.2 P1H.3 P1H.4 P1H.5 P1H.6 P1H.7 CC24IO CC25IO CC26IO CC27IO CAPCOM2: CC24 Capture Input CAPCOM2: CC25 Capture Input CAPCOM2: CC26 Capture Input CAPCOM2: CC27 Capture Input
C11 B11 D10 C10 B10 A10 D9 C9 C8 D8 A7 B7 C7 D7 C5 C6 XTAL1 XTAL2 A5 A6
I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I I I I I O
XTAL1: Input to the oscillator amplifier and input to the internal clock generator XTAL2: Output of the oscillator amplifier circuit. To clock the device from an external source, drive XTAL1, while leaving XTAL2 unconnected. Minimum and maximum high/low and rise/fall times specified in the AC Characteristics must be observed.
RSTIN
A3
I
Reset Input with Schmitt-Trigger characteristics. A low level at this pin for a specified duration while the oscillator is running resets the ST10F280. An internal pullup resistor permits power-on reset using only a capacitor connected to VSS. In bidirectional reset mode (enabled by setting bit BDRSTEN in SYSCON register), the RSTIN line is pulled low for the duration of the internal reset sequence. Internal Reset Indication Output. This pin is set to a low level when the part is executing either a hardware, a software or a watchdog timer reset. RSTOUT remains low until the EINIT (end of initialization) instruction is executed. Non-Maskable Interrupt Input. A high to low transition at this pin causes the CPU to vector to the NMI trap routine. If bit PWDCFG = `0' in SYSCON register, when the PWRDN (power down) instruction is executed, the NMI pin must be low in order to force the ST10F280 to go into power down mode. If NMI is high and PWDCFG ='0', when PWRDN is executed, the part will continue to run in normal mode. If not used, pin NMI should be pulled high externally.
RSTOUT
B4
O
NMI
C4
I
14/186
ST10F280
Table 1 : Ball Description (continued)
Symbol XPWM.0 XPWM.1 XPWM.2 XPWM.3 XADCINJ VAREF VAGND RPD DC1 DC2 VDD Ball Type Number D4 C3 B2 C2 L3 U2 U3 M17 G1 U11 A2 A9 A12 A14 E1 K1 U8 U15 P17 L17 G17 O O O O O I/O O O XPWM Channel 0 Output XPWM Channel 1 Output XPWM Channel 2 Output XPWM Channel 3 Output Output trigger for ADC channel injection Reference voltage for the A/D converter. Reference ground for the A/D converter. Timing pin for the return from powerdown circuit and synchronous/asynchronous reset selection. 3.3V Decoupling pin: a decoupling capacitor of ~330 nF must be connected between this pin and nearest VSS pin. 3.3V Decoupling pin: a decoupling capacitor of ~330 nF must be connected between this pin and VSS nearest pin. Digital Supply Voltage: + 5 V during normal operation, idle mode and power down mode Function
15/186
ST10F280
Table 1 : Ball Description (continued)
Symbol VSS Ball Type Number A1 A4 A8 A11 A13 A16 A17 B3 B5 B6 B8 B9 B17 D5 D6 F1 F17 G4 H1 K16 K17 L1 L4 N15 N17 R17 T15 T16 U7 U10 U13 U14 U16 U17 Digital Ground. Function
16/186
ST10F280
3 - FUNCTIONAL DESCRIPTION The architecture of the ST10F280 combines advantages of both RISC and CISC processors and an advanced peripheral subsystem. The Figure 3 : Block Diagram
32 512K Byte Flash Memory CPU-Core and MAC Unit 16 16 2K Byte Internal RAM
block diagram gives an overview of the different on-chip components and the high bandwidth internal bus structure of the ST10F280.
16 16K Byte XRAM PEC 16
Watchdog Oscillator and PLL
P4.5 CAN1_RxD P4.6 CAN1_TxD P4.4 CAN2_RxD P4.7 CAN2_TxD
CAN1 Interrupt Controller CAN2 16
XTAL1 3.3V
XTAL2
Voltage Regulator
Port 4 Port 1 Port 0
GPT1
ASC usart
CAPCOM2
10-Bit ADC
16 16
External Bus Controller
CAPCOM1
PWM
SSC
GPT2
Port 2
16
8
BRG Port 3 15
BRG Port 7 Port 8
Port 6 8
Port 5 16
8 8 P7.7 Trigger for ADC channel injection
XPORT10 16
XPORT9 16
XPWM 4
XTIMER XADCINJ
External connexion
17/186
ST10F280
4 - MEMORY ORGANIZATION The memory space of the ST10F280 is configured in a unified memory architecture. Code memory, data memory, registers and I/O ports are organized within the same linear address space of 16M Bytes. The entire memory space can be accessed bytewise or wordwise. Particular portions of the on-chip memory have additionally been made directly bit addressable. FLASH: 512K Bytes of on-chip single voltage FLASH memory. IRAM: 2K Bytes of on-chip internal RAM (dual-port) is provided as a storage for data, system stack, general purpose register banks and code. The register bank can consist of up to 16 wordwide (R0 to R15) and/or bytewide (RL0, RH0, ..., RL7, RH7) general purpose registers. Base address is 00'F600h, upper address is 00'FDFFh. XRAM: 16K Bytes of on-chip extension RAM (single port XRAM) is provided as a storage for data, user stack and code. The XRAM is a single bank, connected to the internal XBUS and are accessed like an external memory in 16-bit demultiplexed bus-mode without waitstate or read/write delay (50ns access at 40MHz CPU clock). Byte and word access is allowed. The XRAM address range is 00'8000h - 00'BFFFh if enabled (XPEN set bit 2 of SYSCON register-, and XRAMEN set bit 2 of XPERCON register-). If bit XRAMEN or XPEN is cleared, then any access in the address range 00'8000h 00'BFFFh will be directed to external memory interface, using the BUSCONx register corresponding to address matching ADDRSELx register As the XRAM appears like external memory, it cannot be used for the ST10F280's system stack or register banks. The XRAM is not provided for single bit storage and therefore is not bit addressable. SFR/ESFR: 1024 bytes (2 * 512 bytes) of address space is reserved for the special function register areas. SFRs are wordwide registers which are used for controlling and monitoring functions of the different on-chip units. CAN1: Address range 00'EF00h 00'EFFFh is reserved for the CAN1 Module access. The CAN1 is enabled by setting XPEN bit 2 of the SYSCON register and bit 0 of the new XPERCON register. Accesses to the CAN Module use demultiplexed addresses and a 16-bit data bus (byte accesses are possible). Two waitstates give an access time of 100 ns at 40MHz CPU clock. No tristate waitstate is used.
18/186
CAN2: Address range 00'EE00h 00'EEFFh is reserved for the CAN2 Module access. The CAN2 is enabled by setting XPEN bit 2 of the SYSCON register and bit 1 of the new XPERCON register. Accesses to the CAN Module use demultiplexed addresses and a 16-bit data bus (byte accesses are possible). Two waitstates give an access time of 100 ns at 40MHz CPU clock. No tristate waitstate is used. In order to meet the needs of designs where more memory is required than is provided on chip, up to 16M Bytes of external RAM and/or ROM can be connected to the microcontroller. If one or the two CAN modules are used, Port 4 can not be programmed to output all 8 segment address lines. Thus, only 4 segment address lines can be used, reducing the external memory space to 5M Bytes (1M Byte per CS line). XPWM: Address range 00'EC00h 00'ECFFh is reserved for the XPWM Module access. The XPWM is enabled by setting XPEN bit 2 of the SYSCON register and bit 4 of the new XPERCON register. Accesses to the XPWM Module use demultiplexed addresses and a 16-bit data bus (byte accesses are possible). Two waitstates give an access time of 100 ns at 40MHz CPU clock. No tristate waitstate is used. XPORT9, XTIMER, XPORT10, XADCMUX : Address range 00'C000h 00'C3FFh is reserved for the XPORT9, XPORT10, XTIMER and XADCMUX peripherals access. The XPORT9, XTIMER, XPORT10, XADCMUX are enabled by setting XPEN bit 2 of the SYSCON register and the bit 3 of the new XPERCON register. Accesses to the XPORT9, XTIMER, XPORT10 and XADCMUX modules use a 16-bit demultiplexed bus mode without waitstate or read/write delay (50ns access at 40MHz CPU clock). Byte and word access is allowed. Visibility of XBUS Peripherals The XBUS peripherals can be separately selected for being visible to the user by means of corresponding selection bits in the XPERCON register. If not selected (not activated with XPERCON bit) before the global enabling with XPEN-bit in SYSCON register, the corresponding address space, port pins and interrupts are not occupied by the peripheral, thus the peripheral is not visible and not available. SYSCON register is described in Section 19.2 - System Configuration Registers.
ST10F280
Figure 4 : ST10F280 On-chip Memory Mapping
09'0000 Segment 8
Block10 = 64K Bytes 20 08'0000
RAM, SFR and X-pheripherals are mapped into the address space. 14 Segment 4 05'0000
00'FFFF
Block6 = 64K Bytes 10 04'0000 00'FE00 SFR : 512 Bytes
Segment 3
00'FDFF
Block5 = 64K Bytes 0C 03'0000 00'F600 IRAM : 2K Bytes
Segment 2
Block4 = 64K Bytes 08 07 Block3 = 32K Bytes 00'F000 02'0000
00'F1FF
ESFR : 512 Bytes
Segment 1
06 05 04
01'8000 Block2* Block1* Block0*
00'EFFF
CAN1 : 256 Bytes 00'EF00
01'0000
00'EEFF
CAN2 : 256 Bytes
03 00'C000 00'BFFF
00'EE00
00'ECFF
02 Segment 0 00'8000 00'EC00 01 00'6000 Block2 = 8K Bytes Block1 = 8K Bytes XRAM = 16K Bytes XPWM
00'4000
00'C3FF
XPORT9 XTIMER XPORT10 XADCMUX 00'C000
00 00'0000 Data Page Number Absolute Memory Address
Block0 = 16K Bytes
Internal Flash Memory
* Blocks 0, 1 and 2 may be remapped from segment 0 to segment 1 by setting SYSCON-ROMS1 (before EINIT) Data Page Number and Absolute Memory Address are hexadecimal values.
19/186
ST10F280
XPERCON (F024h / 12h)
15
-
ESFR
9
-
Reset Value: - - 05h
4 3
XPERCONEN3
14
-
13
-
12
-
11
-
10
-
8
-
7
-
6
-
5
-
2
XRAMEN
1
CAN2EN
0
CAN1EN
XPWMEN
RW Bit CAN1EN 0 CAN1 Enable Bit Function
RW
RW
RW
RW
Accesses to the on-chip CAN1 XPeripheral and its functions are disabled. P4.5 and P4.6 pins can be used as general purpose I/Os. Address range 00'EF00h-00'EFFFh is only directed to external memory if CAN2EN and XPWM bits are cleared also. The on-chip CAN1 XPeripheral is enabled and can be accessed. CAN2 Enable Bit Accesses to the on-chip CAN2 XPeripheral and its functions are disabled. P4.4 and P4.7 pins can be used as general purpose I/Os. Address range 00'EE00h-00'EEFFh is only directed to external memory if CAN1EN and XPWM bits are cleared also. The on-chip CAN2 XPeripheral is enabled and can be accessed. XRAM Enable Bit Accesses to the on-chip 16K Byte XRAM are disabled, external access performed. The on-chip 16K Byte XRAM is enabled and can be accessed. XPORT9, XTIMER, XPORT10, XADCMUX Enable Bit Accesses to the XPORT9, XTIMER, XPORT10, XADCMUX peripherals are disabled, external access performed. The on-chip XPORT9, XTIMER, XPORT10, XADCMUX peripherals are enabled and can be accessed. XPWM Enable Bit Accesses to the on-chip XPWM are disabled, external access performed. Address range 00'EC00h-00'ECFFh is only directed to external memory if CAN1EN and CAN2EN are `0' also The on-chip XPWM is enabled and can be accessed.
1 CAN2EN 0
1 XRAMEN 0 1 XPERCONEN3 0 1 XPWMEN 0 1
Note: - When both CAN and XPWM are disabled via XPERCON setting, then any access in the address range 00'EC00h 00'EFFFh will be directed to external memory interface, using the BUSCONx register corresponding to address matching ADDRSELx register. P4.4 and P4.7 can be used as General Purpose I/O when CAN2 is not enabled, and P4.5 and P4.6 can be used as General Purpose I/O when CAN1 is not enabled. - The default XPER selection after Reset is : XCAN1 is enabled, XCAN2 is disabled, XRAM is enabled, XPORT9, XTIMER, XPORT10, XPWM, XADCMUX are disabled. - Register XPERCON cannot be changed after the global enabling of XPeripherals, i.e. after setting of bit XPEN in SYSCON register.
20/186
ST10F280
5 - INTERNAL FLASH MEMORY 5.1 - Overview - 512K Byte on-chip Flash memory - Two possibilities of Flash mapping into the CPU address space - Flash memory can be used for code and data storage - 32-bit, zero waitstate read access (50ns cycle time at fCPU = 40MHz) - Erase-Program Controller (EPC) similar to M29F400B STM's stand-alone Flash memory * Word-by-Word Programmable (16s typical) * Data polling and Toggle Protocol for EPC Status * Internal Power-On detection circuit - Memory Erase in blocks * One 16K Byte, two 8K Byte, one 32K Byte, seven 64K Byte blocks * Each block can (1.5 second typical) be erased separately - Erase Suspend and Resume Modes * Read and Program another Block during erase suspend - Single Voltage operation , no need of dedicated supply pin - Low Power Consumption: * 45mA max. Read current * 60mA max. Program or Erase current * Automatic Stand-by-mode (50A maximum) - 100,000 Erase-Program Cycles per block, 20 year data retention time - Operating temperature: -40 to +125oC 5.2 - Operational Overview Read Mode In standard mode (the normal operating mode) the Flash appears like an on-chip ROM with the same timing and functionality. The Flash module offers a fast access time, allowing zero waitstate access with CPU frequency up to 40MHz. Instruction fetches and data operand reads are performed with all addressing modes of the ST10F280 instruction set. In order to optimize the programming time of the internal Flash, blocks of 8K Bytes, 16K Bytes, 32K Bytes, 64K Bytes can be used. But the size of the blocks does not apply to the whole memory space, see details in Table 2.
* Chip erase (8.5 second typical) * Each block can be separately protected against programming and erasing * Each protected block can be temporary unprotected * When enabled, the read protection prevents access to data in Flash memory using a program running out of the Flash memory space. Access to data of internal Flash can only be performed with an inner protected program
Table 2 : 512K Byte Flash Memory Block Organisation
Block 0 1 2 3 4 5 6 7 8 9 10 Addresses (Segment 0) 00'0000h to 00'3FFFh 00'4000h to 00'5FFFh 00'6000h to 00'7FFFh 01'8000h to 01'FFFFh 02'0000h to 02'FFFFh 03'0000h to 03'FFFFh 04'0000h to 04'FFFFh 05'0000h to 05'FFFFh 06'0000h to 06'FFFFh 07'0000h to 07'FFFFh 08'0000h to 08'FFFFh Addresses (Segment 1) 01'0000h to 01'3FFFh 01'4000h to 01'5FFFh 01'6000h to 01'7FFFh 01'8000h to 01'FFFFh 02'0000h to 02'FFFFh 03'0000h to 03'FFFFh 04'0000h to 04'FFFFh 05'0000h to 05'FFFFh 06'0000h to 06'FFFFh 07'0000h to 07'FFFFh 08'0000h to 08'FFFFh Size (K Byte) 16 8 8 32 64 64 64 64 64 64 64 21/186
ST10F280
Instructions and Commands All operations besides normal read operations are initiated and controlled by command sequences written to the Flash Command Interface (CI). The Command Interface (CI) interprets words written to the Flash memory and enables one of the following operations: - Read memory array - Program Word - Block Erase - Chip Erase - Erase Suspend - Erase Resume - Block Protection - Block Temporary Unprotection - Code Protection Commands are composed of several write cycles at specific addresses of the Flash memory. The different write cycles of such command sequences offer a fail-safe feature to protect against an inadvertent write. A command only starts when the Command Interface has decoded the last write cycle of an operation. Until that last write is performed, Flash memory remains in Read Mode Notes: 1. As it is not possible to perform write operations in the Flash while fetching code from Flash, the Flash commands must be written by instructions executed from internal RAM or external memory. 2. Command write cycles do not need to be consecutively received, pauses are allowed, save for Block Erase command. During this operation all Erase Confirm commands must be sent to complete any block erase operation before time-out period expires (typically 96s). Command sequencing must be followed exactly. Any invalid combination of commands will reset the Command Interface to Read Mode. Status Register This register is used to flag the status of the memory and the result of an operation. This register can be accessed by read cycles during the Erase-Program Controller (EPC) operation. Erase Operation This Flash memory features a block erase architecture with a chip erase capability too. Erase is accomplished by executing the six cycle erase command sequence. Additional command write
22/186
cycles can then be performed to erase more than one block in parallel. When a time-out period elaps (96s) after the last cycle, the Erase-Program Controller (EPC) automatically starts and times the erase pulse and executes the erase operation. There is no need to program the block to be erased with `0000h' before an erase operation. Termination of operation is indicated in the Flash status register. After erase operation, the Flash memory locations are read as 'FFFFh' value. Erase Suspend A block erase operation is typically executed within 1.5 second for a 64K Byte block. Erasure of a memory block may be suspended, in order to read data from another block or to program data in another block, and then resumed. In-System Programming In-system programming is fully supported. No special programming voltage is required. Because of the automatic execution of erase and programming algorithms, write operations are reduced to transferring commands and data to the Flash and reading the status. Any code that programs or erases Flash memory locations (that writes data to the Flash) must be executed from memory outside the on-chip Flash memory itself (on-chip RAM or external memory). A boot mechanism is provided to support in-system programming. It works using serial link via USART interface and a PC compatible or other programming host. Read/Write Protection The Flash module supports read and write protection in a very comfortable and advanced protection functionality. If Read Protection is installed, the whole Flash memory is protected against any "external" read access; read accesses are only possible with instructions fetched directly from program Flash memory. For update of the Flash memory a temporary disable of Flash Read Protection is supported. The device also features a block write protection. Software locking of selectable memory blocks is provided to protect code and data. This feature will disable both program and erase operations in the selected block(s) of the memory. Block Protection is accomplished by block specific lock-bit which are programmed by executing a four cycle command sequence. The locked state of blocks is indicated by specific flags in the according block status registers. A block may only be temporarily unlocked for update (write) operations.
ST10F280
With the two possibilities for write protection whole memory or block specific a flexible installation of write protection is supported to protect the Flash memory or parts of it from unauthorized programming or erase accesses and to provide virus-proof protection for all system code blocks. All write protection also is enabled during boot operation. Power Supply, Reset The Flash module uses a single power supply for both read and write functions. Internally generated and regulated voltages are provided for the program and erase operations from 5V supply. Once a program or erase cycle has been completed, the device resets to the standard read mode. At power-on, the Flash memory has a setup phase of some microseconds (dependent on the power supply ramp-up). During this phase, Flash can not be read. Thus, if EA pin is high (execution will start from Flash memory), the CPU will remains in reset state until the Flash can be accessed. 5.3 - Architectural Description The Flash module distinguishes two basic operating modes, the standard read mode and the command mode. The initial state after power-on and after reset is the standard read mode. 5.3.1 - Read Mode The Flash module enters the standard operating mode, the read mode: - After Reset command - After every completed erase operation - After every completed programming operation - After every other completed command execution - Few microseconds after a CPU-reset has started - After incorrect address and data values of command sequences or writing them in an improper sequence - After incorrect write access to a read protected Flash memory The read mode remains active until the last command of a command sequence is decoded which starts directly a Flash array operation, such as: - erase one or several blocks - program a word into Flash array - protect / temporary unprotect a block. In the standard read mode read accesses are directly controlled by the Flash memory array, delivering a 32-bit double Word from the addressed position. Read accesses are always aligned to double Word boundaries. Thus, both low order address bit A1 and A0 are not used in the Flash array for read accesses. The high order address bit A18/A17/A16 define the physical 64K Bytes segment being accessed within the Flash array. 5.3.2 - Command Mode Every operation besides standard read operations is initiated by commands written to the Flash command register. The addresses used for command cycles define in conjunction with the actual state the specific step within command sequences. With the last command of a command sequence, the Erase-Program Controller (EPC) starts the execution of the command. The EPC status is indicated during command execution by: - The Status Register, - The Ready/Busy signal. 5.3.3 - Flash Status Register The Flash Status register is used to flag the status of the Flash memory and the result of an operation. This register can be accessed by Read cycles during the program-Erase Controller operations. The program or erase operation can be controlled by data polling on bit FSB.7 of Status Register, detection of Toggle on FSB.6 and FSB.2, or Error on FSB.5 and Erase Timeout on FSB.3 bit. Any read attempt in Flash during EPC operation will automatically output these five bits. The EPC sets bit FSB.2, FSB.3, FSB.5, FSB.6 and FSB.7. Other bit are reserved for future use and should be masked.
23/186
ST10F280
Flash Status (see note for address)
15 14 13 12 11 10 9 8 7 6 5 4 3 FSB.3 R 2 FSB.2 R 1 0 -
FSB.7 FSB.6 FSB.5 R R R
FSB.7
Flash Status bit 7: Data Polling Bit Programming Operation: this bit outputs the complement of the bit 7 of the word being programmed, and after completion, will output the bit 7 of the word programmed. Erasing Operation: outputs a `0' during erasing, and `1' after erasing completion. If the block selected for erasure is (are) protected, FSB.7 will be set to `0' for about 100 s, and then return to the previous addressed memory data value. FSB.7 will also flag the Erase Suspend Mode by switching from `0' to `1' at the start of the Erase Suspend. During Program operation in Erase Suspend Mode, FSB.7 will have the same behaviour as in normal Program execution outside the Suspend mode. Flash Status bit 6: Toggle Bit Programming or Erasing Operations: successive read operations of Flash Status register will deliver complementary values. FSB.6 will toggle each time the Flash Status register is read. The Program operation is completed when two successive reads yield the same value. The next read will output the bit last programmed, or a `1' after Erase operation FSB.6 will be set to`1' if a read operation is attempted on an Erase Suspended block. In addition, an Erase Suspend/Resume command will cause FSB.6 to toggle. Flash Status bit 5: Error Bit This bit is set to `1' when there is a failure of Program, block or chip erase operations.This bit will also be set if a user tries to program a bit to `1' to a Flash location that is currently programmed with `0'. The error bit resets after Read/Reset instruction. In case of success, the Error bit will be set to `0' during Program or Erase and then will output the bit last programmed or a `1' after erasing Flash Status bit 3: Erase Time-out Bit This bit is cleared by the EPC when the last Block Erase command has been entered to the Command Interface and it is awaiting the Erase start. When the time-out period is finished, after 96 s, FSB.3 returns back to `1'. Flash Status bit 2: Toggle Bit This toggle bit, together with FSB.6, can be used to determine the chip status during the Erase Mode or Erase Suspend Mode. It can be used also to identify the block being Erased Suspended. A Read operation will cause FSB.2 to Toggle during the Erase Mode. If the Flash is in Erase Suspend Mode, a Read operation from the Erase suspended block or a Program operation into the Erase suspended block will cause FSB.2 to toggle. When the Flash is in Program Mode during Erase Suspend, FSB.2 will be read as `1' if address used is the address of the word being programmed. After Erase completion with an Error status, FSB.2 will toggle when reading the faulty sector.
FSB.6
FSB.5
FSB.3
FSB.2
Note: The Address of Flash Status Register is the address of the word being programmed when Programming operation is in progress, or an address within block being erased when Erasing operation is in progress.
24/186
ST10F280
5.3.4 - Flash Protection Register The Flash Protection register is a non-volatile register that contains the protection status. This register can be read by using the Read Protection Status (RP) command, and programmed by using the dedicated Set Protection command. Flash Protection Register (PR)
15 CP RW BPx 14 13 12 11 10 BP10 RW 9 BP9 RW 8 BP8 RW 7 BP7 RW 6 BP6 RW 5 BP5 RW 4 BP4 RW 3 BP3 RW 2 BP2 RW 1 BP1 RW 0 BP0 RW
Block x Protection bit (x = 0...10) `0': the Block Protection is enabled for block x. Programming or erasing the block is not possible, unless a Block Temporary Unprotection command is issued. 1': the Block Protection is disabled for block x. Bit is `1' by default, and can be programmed permanently to `0' using the Set Protection command but then cannot be set to `1' again. It is therefore possible to temporally disable the Block Protection using the Block Temporary Unprotection instruction.
CP
Code Protection Bit `0': the Flash Code Protection is enabled. Read accesses to the Flash for execution not performed in the Flash itself are not allowed, the returned value will be 009Bh, whatever the content of the Flash is. 1': the Flash Code Protection is disabled: read accesses to the Flash from external or internal RAM are allowed Bit is `1' by default, and can be programmed permanently to `0' using the Set Protection command but then cannot be set to `1' again. It is therefore possible to temporarily disable the Code Protection using the Code Temporary Unprotection instruction.
5.3.5 - Instructions Description Twelve instructions dedicated to Flash memory accesses are defined as follow: Read/Reset (RD). The Read/Reset instruction consist of one write cycle with data XXF0h . it can be optionally preceded by two CI enable coded cycles (data xxA8h at address 1554h + data xx54h at address 2AA8h). Any successive read cycle following a Read/Reset instruction will read the memory array. A Wait cycle of 10s is necessary after a Read/Reset command if the memory was in program or Erase mode. Program Word (PW). This instruction uses four write cycles. After the two Cl enable coded cycles, the Program Word command xxA0h is written at address 1554h. The following write cycle will latch the address and data of the word to be programmed. Memory programming can be done only by writing 0's instead of 1's, otherwise an error occurs. During programming, the Flash Status is checked by reading the Flash Status bit FSB.2, FSB.5, FSB.6 and FSB.7 which show the status of the EPC. FSB.2, FSB.6 and FSB.7 determine if programming is on going or has
completed, and FSB.5 allows a check to be made for any possible error. Block Erase (BE). This instruction uses a minimum of six command cycles. The erase enable command xx80h is written at address 1554h after the two-cycle CI enable sequence. The erase confirm code xx30h must be written at an address related to the block to be erased preceded by the execution of a second CI enable sequence. Additional erase confirm codes must be given to erase more than one block in parallel. Additional erase confirm commands must be written within a defined time-out period. The input of a new Block Erase command will restart the time-out period. When this time-out period has elapsed, the erase starts. The status of the internal timer can be monitored through the level of FSB.3, if FSB.3 is `0', the Block Erase command has been given and the timeout is running; if FSB.3 is `1', the timeout has expired and the EPC is erasing the block(s). If the second command given is not an erase confirm or if the coded cycles are wrong, the instruction aborts, and the device is reset to Read Mode.
25/186
ST10F280
It is not necessary to program the block with 0000h as the EPC will do this automatically before the erasing to FFFFh. Read operations after the EPC has started, output the Flash Status Register. During the execution of the erase by the EPC, the device accepts only the Erase Suspend and Read/Reset instructions. Data Polling bit FSB.7 returns `0' while the erasure is in progress, and `1' when it has completed. The Toggle bit FSB.2 and FSB.6 toggle during the erase operation. They stop when erase is completed. After completion, the Error bit FSB.5 returns `1' if there has been an erase failure because erasure has not completed even after the maximum number of erase cycles have been executed by the EPC, in this case, it will be necessary to input a Read/Reset to the Command Interface in order to reset the EPC. Chip Erase (CE). This instruction uses six write cycles. The Erase Enable command xx80h, must be written at address 1554h after CI-Enable cycles. The Chip Erase command xx10h must be given on the sixth cycle after a second CI-Enable sequence. An error in command sequence will reset the CI to Read mode. It is NOT necessary to program the block with 0000h as the EPC will do this automatically before the erasing to FFFFh. Read operations after the EPC has started output the Flash Status Register. During the execution of the erase by the EPC, Data Polling bit FSB.7 returns `0' while the erasure is in progress, and `1' when it has completed. The FSB.2 and FSB.6 bit toggle during the erase operation. They stop when erase is finished. The FSB.5 error bit returns "1" in case of failure of the erase operation. The error flag is set after the maximum number of erase cycles have been executed by the EPC. In this case, it will be necessary to input a Read/Reset to the Command Interface in order to reset the EPC. Erase Suspend (ES). This instruction can be used to suspend a Block Erase operation by giving the command xxB0h without any specific address. No CI-Enable cycles is required. Erase Suspend operation allows reading of data from another block and/or the programming in another block while erase is in progress. If this command is given during the time-out period, it will terminate the time-out period in addition to erase Suspend. The Toggle Bit FSB.6, when monitored at an address that belongs to the block being erased, stops toggling when Erase Suspend Command is effective, It happens between 0.1s and 15s after the Erase Suspend Command has been written. The Flash will then go in normal Read Mode, and read from blocks not being erased is valid, while read from block being erased will
26/186
output FSB.2 toggling. During a Suspend phase the only instructions valid are Erase Resume and Program Word. A Read / Reset instruction during Erase suspend will definitely abort the Erase and result in invalid data in the block being erased. Erase Resume (ER). This instruction can be given when the memory is in Erase Suspend State. Erase can be resumed by writing the command xx30h at any address without any Cl-enable sequence. Program during Erase Suspend. The Program Word instruction during Erase Suspend is allowed only on blocks that are not Erase-suspended. This instruction is the same than the Program Word instruction. Set Protection (SP). This instruction can be used to enable both Block Protection (to protect each block independently from accidental Erasing-Programming Operation) and Code Protection (to avoid code dump). The Set Protection Command must be given after a special CI-Protection Enable cycles (see instruction table). The following Write cycle, will program the Protection Register. To protect the block x (x = 0 to 10), the data bit x must be at `0'. To protect the code, bit 15 of the data must be `0'. Enabling Block or Code Protection is permanent and can be cleared only by STM. Block Temporary Unprotection and Code Temporary Unprotection instructions are available to allow the customer to update the code. Note: 1. The new value programmed in protection register will only become active after a reset. 2. Bit that are already at '0' in protection register must be confirmed at '0' also in data latched during the 4th cycle of set protection command, otherwise an error may occur. Read Protection Status (RP). This instruction is used to read the Block Protection status and the Code Protection status. To read the protection register (see Table 3), the CI-Protection Enable cycles must be executed followed by the command xx90h at address x2A54h. The following Read Cycles at any odd word address will output the Block Protection Status. The Read/ Reset command xxF0h must be written to reset the protection interface. Note: After a modification of protection register (using Set Protection command), the Read Protection Status will return the new PR value only after a reset.
ST10F280
Block Temporary Unprotection (BTU). This Instruction can be used to temporary unprotect all the blocks from Program / Erase protection. The Unprotection is disabled after a Reset cycle. The Block Temporary Unprotection command xxC1h must be given to enable Block Temporary Unprotection. The Command must be preceded by the CI-Protection Enable cycles and followed by the Read/Reset command xxF0h. Set Code Protection (SCP). This kind of protection allows the customer to protect the proprietary code written in Flash. If installed and active, Flash Code Protection prevents data operand accesses and program branches into the on-chip Flash area from any location outside the Flash memory itself. Data operand accesses and branches to Flash locations are only and exclusively allowed for instructions executed from the Flash memory itself. Every read or jump to Flash performed from another memory (like internal RAM, external memory) while Code Protection is enabled, will give the opcode 009Bh related to TRAP #00 illegal instruction. The CI-Protection Enable cycles must be sent to set the Code Protection. By writing data 7FFFh at any odd word address, the Code Protected status is stored in the Flash Protection Register (PR). Protection is permanent and cannot be cleared by the user. It is possible to temporarily disable the Code Protection using Code Temporary Unprotection instruction. Note: Bits that are already at '0' in protection register must be confirmed at '0' also in data latched during the 4th cycle of set protection command, otherwise an error may occur. Code Temporary Unprotection (CTU). This instruction must be used to temporary disable Code Protection. This instruction is effective only if executed from Flash memory space. To restore the protection status, without using a reset, it is necessary to use a Code Temporary Protection instruction. System reset will reset also the Code Temporary Unprotected status. The Code Temporary Unprotection command consists of the following write cycle: MOV MEM, Rn ; This instruction MUST be executed from Flash memory space Where MEM is an absolute address inside memory space, Rn is a register loaded with data 0FFFFh. Code Temporary Protection (CTP). This instruction allows to restore Code Protection. This operation is effective only if executed from Flash memory and is necessary to restore the protection status after the use of a Code Temporary Unprotection instruction. The Code Temporary Protection command consists of the following write cycle: MOV MEM, Rn ; This instruction MUST be executed from Flash memory space Where MEM is an absolute address inside memory space, Rn is a register loaded with data 0FFFBh. Note that Code Temporary Unprotection instruction must be used when it is necessary to modify the Flash with protected code (SCP), since the write/erase routines must be executed from a memory external to Flash space. Usually, the write/erase routines, executed in RAM, ends with a return to Flash space where a CTP instruction restore the protection.
27/186
ST10F280
Table 3 : Instructions
Instruction Read/Reset Mne RD Cycle 1+ Addr.1 Data Addr.1 Data Addr.1 Program Word PW 4 Data Addr.1 Data Addr.1 Data Addr.1 Data Addr.1 Data Addr.1 SP 4 Data Read Protection Status Addr. RP 4 Data Block Temporary Unprotection Code Temporary Unprotection Code Temporary Protection Addr.1 BTU 4 Data Addr.1 CTU 1 Data Addr.1 CTP 1 Data xxA8h x2A54h xxA8h MEM 8 FFFFh MEM 8 FFFBh Write cycles must be executed from Flash. Write cycles must be executed from Flash. xx54h x15A8h xx54h xx90h x2A54h xxC1h
1
1st Cycle X2 xxF0h x1554h xxA8h x1554h xxA8h x1554h xxA8h x1554h xxA8h X2 xxB0h X2 xx30h x2A54h
2nd Cycle
3rd Cycle
4th Cycle
5th Cycle
6th Cycle
7th Cycle
Read Memory Array until a new write cycle is initiated x2AA8h xx54h x2AA8h xx54h x2AA8h xx54h x2AA8h xx54h xxxxxh xxF0h x1554h xxA0h x1554h xx80h x1554h xx80h Read Memory Array until a new write cycle is initiated WA 3 WD
4
Read/Reset
RD
3+
Read Data Polling or Toggle Bit until Program completes. x2AA8h xx54h x2AA8h xx54h BA xx30h x1554h xx10h BA' 5 xx30h Note 6
Block Erase
BE
6
x1554h xxA8h x1554h xxA8h
Chip Erase
CE
6
Erase Suspend
ES
1
Read until Toggle stops, then read or program all data needed from block(s) not being erased then Resume Erase. Read Data Polling or Toggle bit until Erase completes or Erase is supended another time. x15A8h x2A54h Any odd word address 9 WPR 7 Any odd word address 9 Read PR X2 xxF0h Read Protection Register until a new write cycle is initiated.
Erase Resume Set Block/Code Protection
ER
1
xxA8h x2A54h
xx54h x15A8h
xxC0h x2A54h
Notes 1. Address bit A14, A15 and above are don't care for coded address inputs. 2. X = Don't Care. 3. WA = Write Address: address of memory location to be programmed. 4. WD = Write Data: 16-bit data to be programmed 5. Optional, additional blocks addresses must be entered within a time-out delay (96 s) after last write entry, timeout status can be verified through FSB.3 value. When full command is entered, read Data Polling or Toggle bit until Erase is completed or suspended. 6. Read Data Polling or Toggle bit until Erase completes. 7. WPR = Write protection register. To protect code, bit 15 of WPR must be `0'. To protect block N (N=0,1,...), bit N of WPR must be `0'. Bit that are already at `0' in protection register must also be `0' in WPR, else a writing error will occurs (it is not possible to write a `1' in a bit already programmed at `0'). 8. MEM = any address inside the Flash memory space. Absolute addressing mode must be used (MOV MEM, Rn), and instruction must be executed from Flash memory space. 9. Odd word address = 4n-2 where n = 0, 1, 2, 3..., ex. 0002h, 0006h...
28/186
ST10F280
- Generally, command sequences cannot be written to Flash by instructions fetched from the Flash itself. Thus, the Flash commands must be written by instructions, executed from internal RAM or external memory. - Command cycles on the CPU interface need not to be consecutively received (pauses allowed). The CPU interface delivers dummy read data for not used cycles within command sequences. - All addresses of command cycles shall be defined only with Register-indirect addressing mode in the according move instructions. Direct addressing is not allowed for command sequences. Address segment or data page pointer are taken into account for the command address value. 5.3.6 - Reset Processing and Initial State The Flash module distinguishes two kinds of CPU reset types The lengthening of CPU reset: - Is not reported to external devices by bidirectional pin - Is not enabled in case of external start of CPU after reset. 5.4 - Flash Memory Configuration The default memory configuration of the ST10F280 Memory is determined by the state of the EA pin at reset. This value is stored in the Internal ROM Enable bit (named ROMEN) of the SYSCON register. When ROMEN = 0, the internal Flash is disabled and external ROM is used for startup control. Flash memory can later be enabled by setting the ROMEN bit of SYSCON to 1. The code performing this setting must not run from a segment of the external ROM to be replaced by a segment of the Flash memory, otherwise unexpected behaviour may occur. For example, if external ROM code is located in the first 32K Bytes of segment 0, the first 32K Bytes of the Flash must then be enabled in segment 1. This is done by setting the ROMS1 bit of SYSCON to 0 before or simultaneously with setting of ROMEN bit. This must be done in the externally supplied program before the execution of the EINIT instruction. If program execution starts from external memory, but access to the Flash memory mapped in segment 0 is later required, then the code that performs the setting of ROMEN bit must be executed either in the segment 0 but above address 00'8000h, or from the internal RAM. Bit ROMS1 only affects the mapping of the first 32K Bytes of the Flash memory. All other parts of the Flash memory (addresses 01'8000h 08'FFFFh) remain unaffected. The SGTDIS Segmentation Disable / Enable must also be set to 0 to allow the use of the full 512K Bytes of on-chip memory in addition to the external boot memory. The correct procedure on changing the segmentation registers must also be observed to prevent an unwanted trap condition: - Instructions that configure the internal memory must only be executed from external memory or from the internal RAM. - An Absolute Inter-Segment Jump (JMPS) instruction must be executed after Flash enabling, to the next instruction, even if this next instruction is located in the consecutive address. - Whenever the internal Memory is disabled, enabled or remapped, the DPPs must be explicitly (re)loaded to enable correct data accesses to the internal memory and/or external memory. 5.5 - Application Examples 5.5.1 - Handling of Flash Addresses All command, Block, Data and register addresses to the Flash have to be located within the active Flash memory space. The active space is that address range to which the physical Flash addresses are mapped as defined by the user. When using data page pointer (DPP) for block addresses make sure that address bit A15 and A14 of the block address are reflected in both LSBs of the selected DPPS. Note: - For Command Instructions, address bit A14, A15, A16, A17 and A18 are don't care. This simplify a lot the application software, because it minimize the use of DPP registers when using Command in the Command Interface. - Direct addressing is not allowed for Command sequence operations to the Flash. Only Register-indirect addressing can be used for command, block or write-data accesses.
29/186
ST10F280
5.5.2 - Basic Flash Access Control When accessing the Flash all command write addresses have to be located within the active Flash memory space. The active Flash memory space is that logical address range which is covered by the Flash after mapping. When using data page pointer (DPP) for addressing the Flash, make sure that address bit A15 and A14 of the command addresses are reflected in both LSBs of the selected data page pointer (A15 DPPx.1 and A14 DPPx.0). In case of the command write addresses, address bit A14, A15 and above are don't care. Thus, command writes can be performed by only using one DPP register. This allow to have a more simple and compact application software. Another advantageous possibility is to use the extended segment instruction for addressing. Note: The direct addressing mode is not allowed for write access to the Flash address/command register. Be aware that the C compiler may use this kind of addressing. For write accesses to Flash module always the indirect addressing mode has to be selected. The following basic instruction sequences show examples for different addressing possibilities. Principle example of address generation for Flash commands and registers: When using data page pointer (DPP0 is this example) MOV DPP0,#08h ;adjust data page pointers according to the ;addresses: DPP0 is used in this example, thus ;ADDRESS must have A14 and A15 bit set to `0'. ;ADDRESS could be a dedicated command sequence ;address 2AA8h, 1554h ... ) or the Flash write ;address ;DATA could be a dedicated command sequence data ;(xxA0h,xx80h ... ) or data to be programmed ;indirect addressing
MOV
Rwm,#ADDRESS
MOV MOV
Rwn,#DATA [Rwm],Rwn
When using the extended segment instruction: MOV Rwm,#ADDRESS ;ADDRESS could be a dedicated command sequence ;address (2AA8h, 1554h ... ) or the Flash write ;address ;DATA could be a dedicated command sequence data ;(xxA0h,xx80h ... ) or data to be programmed ;the value of SEGMENT represents the segment ;number and could be 0, 1, 2, 3 or 4 (depending ;on sector mapping) for 256KByte Flash. ;the value of Rwn determines the 8-bit segment ;valid for the corresponding data access for any ;long or indirect address in the following(s) ;instruction(s). LENGTH defines the number of ;the effected instruction(s) and has to be a value ;between 1...4 ;indirect addressing with segment number from ;EXTS
MOV MOV
Rwo,#DATA Rwn,#SEGMENT
EXTS
Rwn,#LENGTH
MOV
[Rwm],Rwo
30/186
ST10F280
5.5.3 - Programming Examples Most of the microcontroller programs are written in the C language where the data page pointers are automatically set by the compiler. But because the C compiler may use the not allowed direct addressing mode for Flash write addresses, it is necessary to program the organisational Flash accesses (command sequences) with assembler in-line routines which use indirect addressing. Example 1 Performing the command Read/Reset We assume that in the initialization phase the lowest 32K Bytes of Flash memory (sector 0) have been mapped to segment 1. According to the usual way of ST10 data addressing with data page pointers, address bit A15 and A14 of a 16-bit command write address select the data page pointer (DPP) which contains the upper 10-bit for building the 24-bit physical data address. Address bit A13...A0 represent the address offset. As the bit A14...A18 are "don't care" when written a Flash command in the Command Interface (CI), we can choose the most conveniant DPPx register for address handling. The following examples are making usage of DPP0. We just have to make sure, that DPP0 points to active Flash memory space. To be independent of mapping of sector 0 we choose for all DPPs which are used for Flash address handling, to point to segment 2. For this reason we load DPP0 with value 08h (00 0000 l000b). MOV MOV SCXT MOV MOV MOV MOV MOV MOV POP R5, #01554h R6, #02AA8h DPPO, #08h R7, #0A8h [R5], R7 R7, #054h [R6], R7 R7, #0F0h [R5], R7 DPP0 ;load auxilary register R5 with command address ;(used in command cycle 1) ;load auxilary register R6 with command address ;(used in command cycle 2) ;push data page pointer 0 and load it to point to ;segment 2 ;load register R7 with 1st CI enable command ;command cycle 1 ;load register R7 with 2cd CI enable command ;command cycle 2 ;load register R7 with Read/Reset command ;command cycle 3. Address is don't care ;restore DPP0 value
In the example above the 16-bit registers R5 and R6 are used as auxilary registers for indirect addressing. Example 2 Performing a Program Word command We assume that in the initialization phase the lowest 32K Bytes of Flash memory (sector 0) have been mapped to segment 1.The data to be written is loaded in register R13, the address to be programmed is loaded in register R11/R12 (segment number in R11, segment offset in R12). MOV MOV SXCT MOV MOV MOV MOV MOV MOV R5, #01554h R6, #02AA8h DPPO, #08h R7, #0A8h [R5], R7 R7, #054h [R6], R7 R7, #0A0h [R5], R7 ;load auxilary register R5 with command address ;(used in command cycle 1) ;load auxilary register R6 with command address ;(used in command cycle 2) ;push data page pointer 0 and load it to point to ;segment 2 ;load register R7 with 1st CI enable command ;command cycle 1 ;load register R7 with 2cd CI enable command ;command cycle 2 ;load register R7 with Program Word command ;command cycle 3
31/186
ST10F280
POP DPP0 ;restore DPP0: following addressing to the Flash ;will use EXTended instructions ;R11 contains the segment to be programmed ;R12 contains the segment offset address to be ;programmed ;R13 contains the data to be programmed EXTS MOV R11, #1 [R12], R13 ;use EXTended addressing for next MOV instruction ;command cycle 4: the EPC starts execution of ;Programming Command ;use EXTended addressing for next MOV instruction ;read Flash Status register (FSB) in R7 ;save it in R6 register ;Check if FSB.7 = Data.7 (i.e. R7.7 = R13.7) XOR JNB R7, R13 R7.7, Prog_OK ;Check if FSB.5 = 1 (Programming Error) JNB R6.5, Data_Polling ;Programming Error: verify is Flash programmed ;data is OK EXTS MOV XOR JNB R11, #1 R7, [R12] R7, R13 R7.7, Prog_OK ;Programming failed: Flash remains in Write ;Operation. ;To go back to normal Read operations, a Read/Reset ;command ;must be performed Prog_Error: MOV EXTS MOV ... ... ... ;When programming operation finished succesfully, ;Flash is set back automatically to normal Read Mode Prog_OK: .... .... R7, #0F0h R11, #1 [R12], R7 ;load register R7 with Read/Reset command ;use EXTended addressing for next MOV instruction ;address is don't care for Read/Reset command ;here place specific Error handling code ;use EXTended addressing for next MOV instruction ;read Flash Status register (FSB) in R7 ;Check if FSB.7 = Data.7
Data_Polling: EXTS MOV MOV R11, #1 R7, [R12] R6, R7
32/186
ST10F280
Example 3 Performing the Block Erase command We assume that in the initialization phase the lowest 32K Bytes of Flash memory (sector 0) have been mapped to segment 1.The registers R11/R12 contain an address related to the block to be erased (segment number in R11, segment offset in R12, for example R11 = 01h, R12= 4000h will erase the block 1 first 8K byte block). MOV R5, #01554h ;load auxilary register R5 with command address ;(used in command cycle 1) MOV R6, #02AA8h ;load auxilary register R6 with command address ;(used in command cycle 2) SXCT DPPO, #08h ;push data page pointer 0 and load it to point ;to ;segment 2 MOV R7, #0A8h ;load register R7 with 1st CI enable command MOV [R5], R7 ;command cycle 1 MOV R7, #054h ;load register R7 with 2cd CI enable command MOV [R6], R7 ;command cycle 2 MOV R7, #080h ;load register R7 with Block Erase command MOV [R5], R7 ;command cycle 3 MOV R7, #0A8h ;load register R7 with 1st CI enable command MOV [R5], R7 ;command cycle 4 MOV R7, #054h ;load register R7 with 2cd CI enable command MOV [R6], R7 ;command cycle 5 POP DPP0 ;restore DPP0: following addressing to the Flash ;will use EXTended instructions ;R11 contains the segment of the block to be erased ;R12 contains the segment offset address of the ;block to be erased MOV R7, #030h ;load register R7 with erase confirm code EXTS R11, #1 ;use EXTended addressing for next MOV instruction MOV [R12], R7 ;command cycle 6: the EPC starts execution of ;Erasing Command Erase_Polling: EXTS R11, #1 ;use EXTended addressing for next MOV instruction MOV R7, [R12] ;read Flash Status register (FSB) in R7 ;Check if FSB.7 = `1' (i.e. R7.7 = `1') JB R7.7, Erase_OK ;Check if FSB.5 = 1 (Erasing Error) JNB R7.5, Erase_Polling ;Programming failed: Flash remains in Write ;Operation. ;To go back to normal Read operations, a Read/Reset ;command ;must be performed Erase_Error: MOV R7, #0F0h EXTS R11, #1 MOV [R12], R7 ... ... ... ;load register R7 with Read/Reset command ;use EXTended addressing for next MOV instruction ;address is don't care for Read/Reset command ;here place specific Error handling code
;When erasing operation finished succesfully, ;Flash is set back automatically to normal Read Mode Erase_OK: .... ....
33/186
ST10F280
5.6 - Bootstrap Loader The built-in bootstrap loader (BSL) of the ST10F280 provides a mechanism to load the startup program through the serial interface after reset. In this case, no external memory or internal Flash memory is required for the initialization code starting at location 00'0000h (see Figure 5). The bootstrap loader moves code/data into the internal RAM, but can also transfer data via the serial interface into an external RAM using a second level loader routine. ROM Memory (internal or external) is not necessary, but it may be used to provide lookup tables or "core-code" like a set of general purpose subroutines for I/O operations, number crunching, system initialization, etc. The bootstrap loader can be used to load the complete application software into ROMless systems, to load temporary software into complete systems for testing or calibration, or to load a programming routine for Flash devices. The BSL mechanism can be used for standard system startup as well as for special occasions like system maintenance (firmer update) or end-of-line programming or testing. Figure 5 : Bootstrap Loader Sequence RSTIN 5.6.1 - Entering the Bootstrap Loader The ST10F280 enters BSL mode when pin P0L.4 is sampled low at the end of a hardware reset. In this case the built-in bootstrap loader is activated independent of the selected bus mode. The bootstrap loader code is stored in a special Boot-ROM. No part of the standard mask Memory or Flash Memory area is required for this. After entering BSL mode and the respective initialization the ST10F280 scans the RxD0 line to receive a zero Byte, one start Bit, eight `0' data Bits and one stop Bit. From the duration of this zero Byte it calculates the corresponding Baud rate factor with respect to the current CPU clock, initializes the serial interface ASC0 accordingly and switches pin TXD0 to output. Using this Baud rate, an identification Byte is returned to the host that provides the loaded data. This identification Byte identifies the device to be booted. Identification byte is D5h for the ST10F280.
P0L.4
1)
RxD0
TXD0
CSP:IP
6)
1) BSL initialization time 2) Zero Byte (1 start Bit, eight `0' data Bits, 1 stop Bit), sent by host. 3) Identification Byte (D5h), sent by ST10F280. 4) 32 Bytes of code / data, sent by host. 5) Caution: TXD0 is only driven a certain time after reception of the zero Byte. 6) Internal Boot ROM.
34/186
00 000
00 00 00 000
2)
4)
3) 5)
Internal Boot Memory (BSL) routine
32 Byte user software
ST10F280
When the ST10F280 has entered BSL mode, the following configuration is automatically set (values that deviate from the normal reset values, are marked):
Watchdog Timer: Context Pointer CP: Stack Pointer SP: Register S0CON: Register S0BG:
Disabled
FA00h FA40h
Register SYSCON: Register STKUN: Register STKOV: Register BUSCON0: P3.10 / TXD0:
0E00h FA40h FA0Ch 0<->C acc. to startup configuration `1' `1'
8011h
Acc. to `00' Byte
DP3.10:
In this case, the watchdog timer is disabled, so the bootstrap loading sequence is not time limited. Pin TXD0 is configured as output, so the ST10F280 can return the identification Byte. Even if the internal Flash is enabled, no code can be executed out of it. The hardware that activates the BSL during reset may be a simple pull-down resistor on P0L.4 for systems that use this feature upon every hardware reset. A switchable solution (via jumper or an external signal) can be used for systems that only temporarily use the bootstrap loader (see Figure 6). After sending the identification Byte the ASC0 receiver is enabled and is ready to receive the initial 32 Bytes from the host. A half duplex connection is therefore sufficient to feed the BSL. Figure 6 : Hardware Provisions to Activate the BSL
5.6.2 - Memory Configuration After Reset The configuration (and the accessibility) of the ST10F280's memory areas after reset in Bootstrap-Loader mode differs from the standard case. Pin EA is not evaluated when BSL mode is selected, and accesses to the internal Flash area are partly redirected, while the ST10F280 is in BSL mode (see Figure 7). All code fetches are made from the special Boot-ROM, while data accesses read from the internal user Flash. Data accesses will return undefined values on ROMless devices. The code in the Boot-ROM is not an invariant feature of the ST10F280. User software should not try to execute code from the internal Flash area while the BSL mode is still active, as these fetches will be redirected to the Boot-ROM. The Boot-ROM will also "move" to segment 1, when the internal Flash area is mapped to segment 1 (see Figure 7).
External Signal
POL.4
POL.4
Normal Boot BSL RPOL.4 8k
RPOL.4 8k
Circuit 2 Circuit 1
35/186
ST10F280
Figure 7 : Memory Configuration After Reset
16 MBytes Access to: 16 MBytes Segment 255 external bus disabled external bus enabled Access to: 16 MBytes Access: Segment 255 depends on reset config EA, Port0
Segment 255
2 1 IRAM 0 Test Flash BSL mode active EA pin Code fetch from internal Flash area Data fetch from internal Flash area
2 1 IRAM 0
2 1 IRAM
internal Flash Flash enabled User Yes (P0L.4='0') High
Test Flash
internal Flash Flash enabled User Yes (P0L.4='0') Low
0
User Flash
depends on reset config EA, Port0
No (P0L.4='1') Access to application User Flash access User Flash access
Test-Flash access User Flash access
Test-Flash access User Flash access
5.6.3 - Loading the Startup Code After sending the identification Byte the BSL enters a loop to receive 32 Bytes via ASC0. These Byte are stored sequentially into locations 00'FA40h through 00'FA5Fh of the internal RAM. So up to 16 instructions may be placed into the RAM area. To execute the loaded code the BSL then jumps to location 00'FA40h, which is the first loaded instruction. The bootstrap loading sequence is now terminated, the ST10F280 remains in BSL mode, however. Most probably the initially loaded routine will load additional code or data, as an average application is likely to require substantially more than 16 instructions. This second receive loop may directly use the pre-initialized interface ASC0 to receive data and store it to arbitrary user-defined locations. This second level of loaded code may be the final application code. It may also be another, more sophisticated, loader routine that adds a transmission protocol to enhance the integrity of the loaded code or data. It may also contain a code sequence to change the system
configuration and enable the bus interface to store the received data into external memory. This process may go through several iterations or may directly execute the final application. In all cases the ST10F280 will still run in BSL mode, that means with the watchdog timer disabled and limited access to the internal Flash area. All code fetches from the internal Flash area (00'0000h...00'7FFFh or 01'0000h...01'7FFFh, if mapped to segment 1) are redirected to the special Boot-ROM. Data fetches access will access the internal Boot-ROM of the ST10F280, if any is available, but will return undefined data on ROMless devices. 5.6.4 - Exiting Bootstrap Loader Mode In order to execute a program in normal mode, the BSL mode must be terminated first. The ST10F280 exits BSL mode upon a software reset (ignores the level on P0L.4) or a hardware reset (P0L.4 must be high). After a reset the ST10F280 will start executing from location 00'0000h of the internal Flash or the external memory, as programmed via pin EA.
36/186
ST10F280
5.6.5 - Choosing the Baud Rate for the BSL The calculation of the serial Baud rate for ASC0 from the length of the first zero Byte that is received, allows the operation of the bootstrap loader of the ST10F280 with a wide range of Baud rates. However, the upper and lower limits have to be kept, in order to insure proper data transfer. BST10F280 = f CPU ----------------------------------------------32 x ( S0BRL + 1 ) Note: Function (FB) does not consider the tolerances of oscillators and other devices supporting the serial communication. This Baud rate deviation is a nonlinear function depending on the CPU clock and the Baud rate of the host. The maxima of the function (FB) increase with the host Baud rate due to the smaller Baud rate pre-scaler factors and the implied higher quantization error (see Figure 8). The minimum Baud rate (BLow in the Figure 8) is determined by the maximum count capacity of timer T6, when measuring the zero Byte, and it depends on the CPU clock. Using the maximum T6 count 216 in the formula the minimum Baud rate can be calculated. The lowest standard Baud rate in this case would be 1200 Baud. Baud rates below BLow would cause T6 to overflow. In this case ASC0 cannot be initialized properly. The maximum Baud rate (BHigh in the Figure 8) is the highest Baud rate where the deviation still does not exceed the limit, so all Baud rates between BLow and BHigh are below the deviation limit. The maximum standard Baud rate that fulfills this requirement is 19200 Baud. Higher Baud rates, however, may be used as long as the actual deviation does not exceed the limit. A certain Baud rate (marked 'I' in Figure 8) may violate the deviation limit, while an even higher Baud rate (marked 'II' in Figure 8) stays very well below it. This depends on the host interface.
The ST10F280 uses timer T6 to measure the length of the initial zero Byte. The quantization uncertainty of this measurement implies the first deviation from the real Baud rate, the next deviation is implied by the computation of the S0BRL reload value from the timer contents. The formula below shows the association: f CPU 9 , T6 = -- x ----------------4B Ho st For a correct data transfer from the host to the ST10F280 the maximum deviation between the internal initialized Baud rate for ASC0 and the real Baud rate of the host should be below 2.5%. The deviation (FB, in percent) between host Baud rate and ST10F280 Baud rate can be calculated via the formula below: S0BR L = T6 - 36 ------------------72 F B -B C ontr Ho st = ------------------------------------------- x 100 % , B C ontr
B
F 2.5 % B
Figure 8 : Baud Rate Deviation Between Host and ST10F280
FB 2.5%
I
BLow
BHigh
II
BHOST
37/186
ST10F280
6 - CENTRAL PROCESSING UNIT (CPU) The CPU includes a 4-stage instruction pipeline, a 16-bit arithmetic and logic unit (ALU) and dedicated SFRs. Additional hardware has been added for a separate multiply and divide unit, a bit-mask generator and a barrel shifter. Most of the ST10F280's instructions can be executed in one instruction cycle which requires 50ns at 40MHz CPU clock. For example, shift and rotate instructions are processed in one instruction cycle independent of the number of bits to be shifted. Multiple-cycle instructions have been optimized: branches are carried out in 2 cycles, 16 x 16 bit multiplication in 5 cycles and a 32/16 bit division in 10 cycles. The jump cache reduces the execution time of repeatedly performed jumps in a loop, from 2 cycles to 1 cycle. The CPU uses a bank of 16 word registers to run the current context. This bank of General Purpose Registers (GPR) is physically stored within the on-chip Internal RAM (IRAM) area. A Context Pointer (CP) register determines the base address of the active register bank to be accessed by the CPU. The number of register banks is only restricted by the available Internal RAM space. For easy parameter passing, a register bank may overlap others. A system stack of up to 1024 bytes is provided as a storage for temporary data. The system stack is allocated in the on-chip RAM area, and it is accessed by the CPU via the stack pointer (SP) register. Two separate SFRs, STKOV and STKUN, are implicitly compared against the stack pointer value upon each stack access for the detection of a stack overflow or underflow.
Figure 9 : CPU Block Diagram (MAC Unit not included)
16 CPU SP STKOV STKUN 512K Byte Flash memory 32 PSW SYSCON BUSCON 0 BUSCON 1 BUSCON 2 BUSCON 3 BUSCON 4 Data Pg. Ptrs Exec. Unit Instr. Ptr 4-Stage Pipeline MDH MDL Mul./Div.-HW Bit-Mask Gen. General Purpose Registers R15 2K Byte Internal RAM Bank n
ALU 16-Bit Barrel-Shift CP ADDRSEL 1 ADDRSEL 2 ADDRSEL 3 ADDRSEL 4 Code Seg. Ptr.
R0
Bank i
16
Bank 0
38/186
ST10F280
The System Configuration Register SYSCON This bit-addressable register provides general system configuration and control functions. The reset value for register SYSCON depends on the state of the PORT0 pins during reset. SYSCON (FF12h / 89h)
15 14
STKSZ
SFR
11
SGT DIS
Reset Value: 0xx0h
7 6
CS CFG
13
12
ROM S1
10
ROM EN
9
BYT DIS
8
CLK EN
5
PWD CFG
4
OWD DIS
3
BDR STEN
2
XPEN
1
VISI BLE
0
XPERSHARE
WR CFG
RW
RW
RW
RW1
RW1
RW
RW1
RW
RW
RW
RW
RW
RW
RW
Notes: 1. These bit are set directly or indirectly according to PORT0 and EA pin configuration during reset sequence. 2. Register SYSCON cannot be changed after execution of the EINIT instruction.
Bit XPEN 0 1 BDRSTEN 0 1 OWDDIS 0 XBUS Peripheral Enable Bit
Function
Accesses to the on-chip X-Peripherals and their functions are disabled The on-chip X-Peripherals are enabled and can be accessed. Bidirectional Reset Enable RSTIN pin is an input pin only. SW Reset or WDT Reset have no effect on this pin RSTIN pin is a bidirectional pin. This pin is pulled low during 1024 TCL during reset sequence. Oscillator Watchdog Disable Control Oscillator Watchdog (OWD) is enabled. If PLL is bypassed, the OWD monitors XTAL1 activity. If there is no activity on XTAL1 for at least 1 s, the CPU clock is switched automatically to PLL's base frequency (2 to 10MHz). OWD is disabled. If the PLL is bypassed, the CPU clock is always driven by XTAL1 signal. The PLL is turned off to reduce power supply current.. Power Down Mode Configuration Control
1 PWDCFG 0
Power Down Mode can only be entered during PWRDN instruction execution if NMI pin is low, otherwise the instruction has no effect. To exit Power Down Mode, an external reset must occurs by asserting the RSTIN pin. Power Down Mode can only be entered during PWRDN instruction execution if all enabled fast external interrupt EXxIN pins are in their inactive level. Exiting this mode can be done by asserting one enabled EXxIN pin. Chip Select Configuration Control
1
CSCFG 0 1
Latched Chip Select lines: CSx change 1 TCL after rising edge of ALE Unlatched Chip Slect lines : CSx change with rising edge of ALE
6.1 - Multiplier-accumulator Unit (MAC) The MAC co-processor is a specialized co-processor added to the ST10 CPU Core in order to improve the performances of the ST10 Family in signal processing algorithms. Signal processing needs at least three specialized units operating in parallel to achieve maximum performance : - A Multiply-Accumulate Unit, - An Address Generation Unit, able to feed the MAC Unit with 2 operands per cycle, - A Repeat Unit, to execute series of multiply-accumulate instructions.
The existing ST10 CPU has been modified to include new addressing capabilities which enable the CPU to supply the new co-processor with up to 2 operands per instruction cycle. This new co-processor (so-called MAC) contains a fast multiply-accumulate unit and a repeat unit. The co-processor instructions extend the ST10 CPU instruction set with multiply, multiply-accumulate, 32-bit signed arithmetic operations. A new transfer instruction CoMOV has also been added to take benefit of the new addressing capabilities.
39/186
ST10F280
6.1.1 - Features 6.1.1.1 - Enhanced Addressing Capabilities - New addressing modes including a double indirect addressing mode with pointer post-modification. - Parallel Data Move : this mechanism allows one operand move during Multiply-Accumulate instructions without penalty. - New tranfer instructions CoSTORE (for fast access to the MAC SFRs) and CoMOV (for fast memory to memory table transfer). 6.1.1.2 - Multiply-Accumulate Unit - One-cycle execution for all MAC operations. Figure 10 : MAC Unit Architecture
Operand 1 GPR Pointers * IDX0 Pointer IDX1 Pointer QR0 GPR Offset Register QR1 GPR Offset Register QX0 IDX Offset Register QX1 IDX Offset Register Concatenation 32 Mux Sign Extend MRW 0h 40 Repeat Unit Interrupt Controller ST10 CPU MSW Flags MAE Control Unit 40 8-bit Left/Right Shifter Mux 40 Scaler 08000h 40 40 0h 40 40 Mux 40 16 x 16 signed/unsigned Multiplier 16 16 Operand 2
- 16 x 16 signed/unsigned parallel multiplier. - 40-bit signed arithmetic unit with automatic saturation mode. - 40-bit accumulator. - 8-bit left/right shifter. - Full instruction set with multiply and multiply-accumulate, 32-bit signed arithmetic and compare instructions. 6.1.1.3 - Program Control - Repeat Unit : allows some MAC co-processor instructions to be repeated up to 8192 times. Repeated instructions may be interrupted. - MAC interrupt (Class B Trap) on MAC condition flags.
32
MCW
A B 40-bit Signed Arithmetic Unit 40 MAH MAL
Note: * Shared with standard ALU.
40/186
ST10F280
6.2 - Instruction Set Summary The Table 4 lists the instructions of the ST10F280. The various addressing modes, instruction operation, parameters for conditional execution of instructions, opcodes and a detailed description of each instruction can be found in the "ST10 Family Programming Manual". Table 4 : Instruction Set Summary
Mnemonic ADD(B) ADDC(B) SUB(B) SUBC(B) MUL(U) DIV(U) DIVL(U) CPL(B) NEG(B) AND(B) OR(B) XOR(B) BCLR BSET BMOV(N) BAND, BOR, BXOR BCMP BFLDH/L CMP(B) CMPD1/2 CMPI1/2 PRIOR SHL / SHR ROL / ROR ASHR MOV(B) MOVBS MOVBZ JMPA, JMPI, JMPR JMPS J(N)B JBC Add word (byte) operands Add word (byte) operands with Carry Subtract word (byte) operands Subtract word (byte) operands with Carry (Un)Signed multiply direct GPR by direct GPR (16-16-bit) (Un)Signed divide register MDL by direct GPR (16-/16-bit) (Un)Signed long divide reg. MD by direct GPR (32-/16-bit) Complement direct word (byte) GPR Negate direct word (byte) GPR Bitwise AND, (word/byte operands) Bitwise OR, (word/byte operands) Bitwise XOR, (word/byte operands) Clear direct bit Set direct bit Move (negated) direct bit to direct bit AND/OR/XOR direct bit with direct bit Compare direct bit to direct bit Bitwise modify masked high/low byte of bit-addressable direct word memory with immediate data Compare word (byte) operands Compare word data to GPR and decrement GPR by 1/2 Compare word data to GPR and increment GPR by 1/2 Determine number of shift cycles to normalize direct word GPR and store result in direct word GPR Shift left/right direct word GPR Rotate left/right direct word GPR Arithmetic (sign bit) shift right direct word GPR Move word (byte) data Move byte operand to word operand with sign extension Move byte operand to word operand with zero extension Jump absolute/indirect/relative if condition is met Jump absolute to a code segment Jump relative if direct bit is (not) set Jump relative and clear bit if direct bit is set Description Bytes 2/4 2/4 2/4 2/4 2 2 2 2 2 2/4 2/4 2/4 2 2 4 4 4 4 2/4 2/4 2/4 2 2 2 2 2/4 2/4 2/4 4 4 4 4 41/186
ST10F280
Table 4 : Instruction Set Summary
Mnemonic JNBS CALLA, CALLI, CALLR CALLS PCALL TRAP PUSH, POP SCXT RET RETS RETP RETI SRST IDLE PWRDN SRVWDT DISWDT EINIT ATOMIC EXTR EXTP(R) EXTS(R) NOP Description Jump relative and set bit if direct bit is not set Call absolute/indirect/relative subroutine if condition is met Call absolute subroutine in any code segment Push direct word register onto system stack and call absolute subroutine Call interrupt service routine via immediate trap number Push/pop direct word register onto/from system stack Push direct word register onto system stack and update register with word operand Return from intra-segment subroutine Return from inter-segment subroutine Return from intra-segment subroutine and pop direct word register from system stack Return from interrupt service subroutine Software Reset Enter Idle Mode Enter Power Down Mode (supposes NMI-pin being low) Service Watchdog Timer Disable Watchdog Timer Signify End-of-Initialization on RSTOUT-pin Begin ATOMIC sequence Begin EXTended Register sequence Begin EXTended Page (and Register) sequence Begin EXTended Segment (and Register) sequence Null operation Bytes 4 4 4 4 2 2 4 2 2 2 2 4 4 4 4 4 4 2 2 2/4 2/4 2
6.3 - MAC Coprocessor Specific Instructions The following table gives an overview of the MAC instruction set. All the mnemonics are listed with the addressing modes that can be used with each instruction. For each combination of mnemonic and addressing mode this table indicates if it is repeatable or not New addressing capabilities enable the CPU to supply the MAC with up to 2 operands per instruction cycle. MAC instructions: multiply, multiply-accumulate, 32-bit signed arithmetic operations
and the CoMOV transfer instruction have been added to the standard instruction set. Full details are provided in the `ST10 Family Programming Manual'. Double indirect addressing requires two pointers. Any GPR can be used for one pointer, the other pointer is provided by one of two specific SFRs IDX0 and IDX1. Two pairs of offset registers QR0/QR1 and QX0/QX1 are associated with each pointer (GPR or IDXi). The GPR pointer allows access to the entire memory space, but IDXi are limited to the internal Dual-Port RAM, except for the CoMOV instruction.
42/186
ST10F280
Mnemonic CoMUL CoMULu CoMULus CoMULsu CoMULCoMULuCoMULusCoMULsuCoMUL, rnd CoMULu, rnd CoMULus, rnd CoMULsu, rnd CoMAC CoMACu CoMACus CoMACsu CoMACCoMACuCoMACusCoMACsuCoMAC, rnd CoMACu, rnd CoMACus, rnd CoMACsu, rnd CoMACR CoMACRu CoMACRus CoMACRsu CoMACR, rnd CoMACRu, rnd CoMACRus, rnd CoMACRsu, rnd [Rwm] CoNOP [IDXi]
Addressing Modes
Repeatability
Rwn, Rwm [IDXi], [Rwm] Rwn, [Rwm]
No No No
Rwn, Rwm [IDXi], [Rwm] Rwn, [Rwm]
No Yes Yes
Rwn, Rwm [IDXi], [Rwn] Rwn, [RWm]
No No No
Yes Yes Yes
[IDXi], [Rwm] CoNEG CoNEG, rnd CoRND CoSTORE CoMOV Rwn, CoReg [Rwn], Coreg [IDXi], [Rwm] -
No No Yes Yes
43/186
ST10F280
Mnemonic CoMACM CoMACMu CoMACMus CoMACMsu CoMACMCoMACMuCoMACMusCoMACMsuCoMACM, rnd CoMACMu, rnd CoMACMus, rnd CoMACMsu, rnd CoMACMR CoMACMRu CoMACMRus CoMACMRsu CoMACMR, rnd CoMACMRu, rnd CoMACMRus, rnd CoMACMRsu, rnd CoADD CoADD2 CoSUB CoSUB2 CoSUBR CoSUB2R CoMAX CoMIN CoLOAD CoLOADCoLOAD2 CoLOAD2CoCMP CoSHL CoSHR CoASHR CoASHR, rnd Rwm #data4 [Rwm]
Addressing Modes
Repeatability
[IDXi], [Rwm]
Yes
Rwn, Rwm [IDXi], [Rwm] Rwn, [Rwm]
No Yes Yes
Rwn, Rwm [IDXi], [Rwm] Rwn, [Rwm]
No No No
Yes No Yes
CoABS
Rwn, Rwm [IDXi], [Rwm] Rwn, [Rwm]
No No No
44/186
ST10F280
The Table 5 shows the various combinations of pointer post-modification for each of these 2 new addressing modes. In this document the symbols "[Rwn]" and "[IDXi]" refer to these addressing modes. Table 5 : Pointer Post-modification Combinations for IDXi and Rwn
Symbol "[IDXi]" stands for Mnemonic [IDXi] [IDXi+] [IDXi] [IDXi + QXj] [IDXi QXj] "[Rwn]" stands for [Rwn] [Rwn+] [Rwn-] [Rwn+QRj] [Rwn QRj] Address Pointer Operation (IDXi) (IDXi) (no-op) (IDXi) (IDXi) +2 (i=0,1) (IDXi) (IDXi)2 (i=0,1) (IDXi) (IDXi) + (QXj) (i, j =0,1) (IDXi) (IDXi) (QXj) (i, j =0,1) (Rwn) (Rwn) (no-op) (Rwn) (Rwn) +2 (n=0-15) (Rwn) (Rwn)2 (k=0-15) (Rwn) (Rwn) + (QRj) (n=0-15;j =0,1) (Rwn) (Rwn) (QRj) (n=0-15; j =0,1)
Table 6 : MAC Registers Referenced as `CoReg`
Registers MSW MAH MAS MAL MCW MRW MAC-Unit Status Word MAC-Unit Accumulator High "limited" MAH /signed MAC-Unit Accumulator Low MAC-Unit Control Word MAC-Unit Repeat Word Description Address in Opcode 00000b 00001b 00010b 00100b 00101b 00110b
45/186
ST10F280
7 - EXTERNAL BUS CONTROLLER All of the external memory accesses are performed by the on-chip external bus controller. The EBC can be programmed to single chip mode when no external memory is required, or to one of four different external memory access modes: - 16-/18-/20-/24-bit addresses 16-bit data, demultiplexed - 16-/18-/20-/24-bit addresses 16-bit data, multiplexed - 16-/18-/20-/24-bit addresses 8-bit data, multiplexed - 16-/18-/20-/24-bit addresses 8-bit data, demultiplexed In demultiplexed bus modes addresses are output on PORT1 and data is input/output on PORT0 or P0L, respectively. In the multiplexed bus modes both addresses and data use PORT0 for input/ output. Timing characteristics of the external bus interface (memory cycle time, memory tri-state time, length of ale and read write delay) are programmable giving the choice of a wide range of memories and external peripherals. Up to 4 independent address windows may be defined (using register pairs ADDRSELx / BUSCONx) to access different resources and bus characteristics. These address windows are arranged hierarchically where BUSCON4 overrides BUSCON3 and BUSCON2 overrides BUSCON1. All accesses to locations not covered by these 4 address windows are controlled by BUSCON0. Up to 5 external CS signals (4 windows plus default) can be generated in order to save external glue logic. Access to very slow memories is supported by a `Ready' function. A HOLD/HLDA protocol is available for bus arbitration which shares external resources with other bus masters. The bus arbitration is enabled by setting bit HLDEN in register PSW. After setting HLDEN once, pins P6.7...P6.5 (BREQ, HLDA, HOLD) are automatically controlled by the EBC. In master mode (default after reset) the HLDA pin is an output. By setting bit DP6.7 to'1' the slave mode is selected where pin HLDA is switched to input. This directly connects the slave controller to another master controller without glue logic. For applications which require less external memory space, the address space can be restricted to 1 MByte, 256 KByte or to 64 KByte. Port 4 outputs all 8 address lines if an address space of 16 MBytes is used, otherwise four, two or no address lines. Chip select timing can be made programmable. By default (after reset), the CSx lines change half a CPU clock cycle after the rising edge of ALE. With the CSCFG bit set in the SYSCON register the CSx lines change with the rising edge of ALE. The active level of the READY pin can be set by bit RDYPOL in the BUSCONx registers. When the READY function is enabled for a specific address window, each bus cycle within the window must be terminated with the active level defined by bit RDYPOL in the associated BUSCON register. 7.1 - Programmable Chip Select Timing Control The ST10F280 allows the user to adjust the position of the CSx lines changes. By default (after reset), the CSx lines are changing half a CPU clock cycle (12.5 ns at fCPU = 40MHz) after the rising edge of ALE. With the CSCFG bit set in the SYSCON register, the CSx lines are changing with the rising edge of ALE, thus the CSx lines are changing at the same time the address lines are changing. See Section 19.2 - System Configuration Registers for detailled description of SYSCON register.
46/186
ST10F280
Figure 11 : Chip Select Delay
Normal Demultiplexed Segment (P4) Address (P1) Bus Cycle ALE Lengthen Demultiplexed Bus Cycle
ALE Normal CSx Unlatched CSx
BUS (P0) RD
Data
Data
BUS (P0)
Data
Data
WR Read/Write Delay Read/Write Delay
7.2 - READY Programmable Polarity The active level of the READY pin can be selected by software via the RDYPOL bit in the BUSCONx registers. When the READY function is enabled for a specific address window, each bus cycle within this window must be terminated with the active level defined by this RDYPOL bit in the associted BUSCON register. BUSCON0 (FF0Ch / 86h)
15 14 13 12 RDY EN0 RW 11 10 9 8 CSW CSRE RDY EN0 N0 POL0 RW RW RW BUS ALE ACT0 CTL0 RW RW
SFR
7 BTYP RW 6 5 MTT C0 RW 4 RWD C0 RW 3
Reset Value: 0xx0h
2 1 0 MCTC RW
BUSCON1 (FF14h / 8Ah)
15 CSW EN1 RW 14 CSR EN1 RW 13 RDY POL1 RW 12 RDY EN1 RW 11 10 9 8 BUS ALE ACT1 CTL1 RW RW
SFR
7 BTYP RW 6 5 MTT C1 RW 4 RWD C1 RW 3
Reset Value: 0000h
2 1 0 MCTC RW
BUSCON2 (FF16h / 8Bh)
15 CSW EN2 RW 14 CSR EN2 RW 13 RDY POL2 RW 12 RDY EN2 RW 11 10 9 8 BUS ALE ACT2 CTL2 RW RW
SFR
7 BTYP RW 6 5 MTT C2 RW 4 RWD C2 RW 3
Reset Value: 0000h
2 1 0 MCTC RW 47/186
ST10F280
BUSCON3 (FF18h / 8Ch)
15 CSW EN3 RW 14 CSR EN3 RW 13 RDY POL3 RW 12 RDY EN3 RW 11 10 9 8 BUS ALE ACT3 CTL3 RW RW
SFR
7 BTYP RW 6 5 MTT C3 RW 4 RWD C3 RW 3
Reset Value: 0000h
2 1 0 MCTC RW
BUSCON4 (FF1Ah / 8Dh)
15 CSW EN4 RW 14 CSR EN4 RW Bit RDYPOLx 0 1 Ready Active Level Control 13 RDY POL4 RW 12 RDY EN4 RW 11 10 9 8 BUS ALE ACT4 CTL4 RW RW
SFR
7 BTYP RW Function 6 5 MTT C4 RW 4 RWD C4 RW 3
Reset Value: 0000h
2 1 0 MCTC RW
The active level on the READY pin is low, bus cycle terminates with a `0' on READY pin, The active level on the READY pin is high, bus cycle terminates with a `1' on READY pin.
48/186
ST10F280
8 - INTERRUPT SYSTEM The interrupt response time for internal program execution is from 125ns to 300ns at 40MHz CPU clock. The ST10F280 architecture supports several mechanisms for fast and flexible response to service requests that can be generated from various sources (internal or external) to the microcontroller. Any of these interrupt requests can be serviced by the Interrupt Controller or by the Peripheral Event Controller (PEC). In contrast to a standard interrupt service where the current program execution is suspended and a branch to the interrupt vector table is performed, just one cycle is `stolen' from the current CPU activity to perform a PEC service. A PEC service implies a single Byte or Word data transfer between any two memory locations with an additional increment of either the PEC source or destination pointer. An individual PEC transfer counter is implicitly decremented for each PEC service except when performing in the continuous transfer mode. When this counter reaches zero, a standard interrupt is performed to the corresponding source related vector location. PEC services are very well suited to perform the transmission or the reception of blocks of data. The ST10F280 has 8 PEC channels, each of them offers such fast interrupt-driven data transfer capabilities. EXISEL (F1DAh / EDh)
15 14 13 12 11 10 9
An interrupt control register which contains an interrupt request flag, an interrupt enable flag and an interrupt priority bitfield is dedicated to each existing interrupt source. Thanks to its related register, each source can be programmed to one of sixteen interrupt priority levels. Once starting to be processed by the CPU, an interrupt service can only be interrupted by a higher prioritized service request. For the standard interrupt processing, each of the possible interrupt sources has a dedicated vector location. Software interrupts are supported by means of the `TRAP' instruction in combination with an individual trap (interrupt) number. 8.1 - External Interrupts Fast external interrupt inputs are provided to service external interrupts with high precision requirements. These fast interrupt inputs feature programmable edge detection (rising edge, falling edge or both edges). Fast external interrupts may also have interrupt sources selected from other peripherals; for example the CANx controller receive signal (CANx_RxD) can be used to interrupt the system. This new function is controlled using the `External Interrupt Source Selection' register EXISEL. Reset Value: 0000h
6 5 4 3 2 1 0
ESFR
8 7
EXI7SS RW
EXI6SS RW
EXI5SS RW
EXI4SS RW
EXI3SS RW
EXI2SS RW
EXI1SS RW
EXI0SS RW
EXIxSS
External Interrupt x Source Selection (x=7...0) `00': Input from associated Port 2 pin. `01': Input from "alternate source". `10': Input from Port 2 pin ORed with "alternate source". `11': Input from Port 2 pin ANDed with "alternate source".
EXIxSS 0 1 2...7 Port 2 pin P2.8 P2.9 P2.10...15 Alternate Source CAN1_RxD CAN2_RxD Not used (zero) 49/186
ST10F280
EXICON (F1C0h / E0h )
15 14 13 12 11 10 9
ESFR
8 7 6 5 4 3
Reset Value: 0000h
2 1 0
EXI7ES
EXI6ES
EXI5ES
EXI4ES
EXI3ES
EXI2ES
EXI1ES
EXI0ES
RW EXIxES(x=7...0)
RW
RW
RW
RW
RW
RW
RW
External Interrupt x Edge Selection Field (x=7...0) 0 0: 0 1: 1 0: 1 1: Fast external interrupts disabled: standard mode EXxIN pin not taken in account for entering/exiting Power Down mode. Interrupt on positive edge (rising) Enter Power Down mode if EXiIN = `0', exit if EXxIN = `1' (referred as `high' active level) Interrupt on negative edge (falling) Enter Power Down mode if EXiIN = `1', exit if EXxIN = `0' (referred as `low' active level) Interrupt on any edge (rising or falling) Always enter Power Down mode, exit if EXxIN level changed.
8.2 - Interrupt Registers and Vectors Location List Table 7 shows all the available ST10F280 interrupt sources and the corresponding hardware-related interrupt flags, vectors, vector locations and trap (interrupt) numbers: Table 7 : Interrupt Sources
Source of Interrupt or PEC Service Request CAPCOM Register 0 CAPCOM Register 1 CAPCOM Register 2 CAPCOM Register 3 CAPCOM Register 4 CAPCOM Register 5 CAPCOM Register 6 CAPCOM Register 7 CAPCOM Register 8 CAPCOM Register 9 CAPCOM Register 10 CAPCOM Register 11 CAPCOM Register 12 CAPCOM Register 13 CAPCOM Register 14 CAPCOM Register 15 CAPCOM Register 16 CAPCOM Register 17 CAPCOM Register 18 CAPCOM Register 19 CAPCOM Register 20 50/186 Request Flag CC0IR CC1IR CC2IR CC3IR CC4IR CC5IR CC6IR CC7IR CC8IR CC9IR CC10IR CC11IR CC12IR CC13IR CC14IR CC15IR CC16IR CC17IR CC18IR CC19IR CC20IR Enable Flag CC0IE CC1IE CC2IE CC3IE CC4IE CC5IE CC6IE CC7IE CC8IE CC9IE CC10IE CC11IE CC12IE CC13IE CC14IE CC15IE CC16IE CC17IE CC18IE CC19IE CC20IE Interrupt Vector CC0INT CC1INT CC2INT CC3INT CC4INT CC5INT CC6INT CC7INT CC8INT CC9INT CC10INT CC11INT CC12INT CC13INT CC14INT CC15INT CC16INT CC17INT CC18INT CC19INT CC20INT Vector Location 00'0040h 00'0044h 00'0048h 00'004Ch 00'0050h 00'0054h 00'0058h 00'005Ch 00'0060h 00'0064h 00'0068h 00'006Ch 00'0070h 00'0074h 00'0078h 00'007Ch 00'00C0h 00'00C4h 00'00C8h 00'00CCh 00'00D0h Trap Number 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 30h 31h 32h 33h 34h
ST10F280
Table 7 : Interrupt Sources (continued)
Source of Interrupt or PEC Service Request CAPCOM Register 21 CAPCOM Register 22 CAPCOM Register 23 CAPCOM Register 24 CAPCOM Register 25 CAPCOM Register 26 CAPCOM Register 27 CAPCOM Register 28 CAPCOM Register 29 CAPCOM Register 30 CAPCOM Register 31 CAPCOM Timer 0 CAPCOM Timer 1 CAPCOM Timer 7 CAPCOM Timer 8 GPT1 Timer 2 GPT1 Timer 3 GPT1 Timer 4 GPT2 Timer 5 GPT2 Timer 6 GPT2 CAPREL Register A/D Conversion Complete A/D Overrun Error ASC0 Transmit ASC0 Transmit Buffer ASC0 Receive ASC0 Error SSC Transmit SSC Receive SSC Error PWM Channel 0...3 CAN1 Interface CAN2 Interface XPWM PLL Unlock/OWD Request Flag CC21IR CC22IR CC23IR CC24IR CC25IR CC26IR CC27IR CC28IR CC29IR CC30IR CC31IR T0IR T1IR T7IR T8IR T2IR T3IR T4IR T5IR T6IR CRIR ADCIR ADEIR S0TIR S0TBIR S0RIR S0EIR SCTIR SCRIR SCEIR PWMIR XP0IR XP1IR XP2IR XP3IR Enable Flag CC21IE CC22IE CC23IE CC24IE CC25IE CC26IE CC27IE CC28IE CC29IE CC30IE CC31IE T0IE T1IE T7IE T8IE T2IE T3IE T4IE T5IE T6IE CRIE ADCIE ADEIE S0TIE S0TBIE S0RIE S0EIE SCTIE SCRIE SCEIE PWMIE XP0IE XP1IE XP2IE XP3IE Interrupt Vector CC21INT CC22INT CC23INT CC24INT CC25INT CC26INT CC27INT CC28INT CC29INT CC30INT CC31INT T0INT T1INT T7INT T8INT T2INT T3INT T4INT T5INT T6INT CRINT ADCINT ADEINT S0TINT S0TBINT S0RINT S0EINT SCTINT SCRINT SCEINT PWMINT XP0INT XP1INT XP2INT XP3INT Vector Location 00'00D4h 00'00D8h 00'00DCh 00'00E0h 00'00E4h 00'00E8h 00'00ECh 00'00F0h 00'0110h 00'0114h 00'0118h 00'0080h 00'0084h 00'00F4h 00'00F8h 00'0088h 00'008Ch 00'0090h 00'0094h 00'0098h 00'009Ch 00'00A0h 00'00A4h 00'00A8h 00'011Ch 00'00ACh 00'00B0h 00'00B4h 00'00B8h 00'00BCh 00'00FCh 00'0100h 00'0104h 00'0108h 00'010Ch Trap Number 35h 36h 37h 38h 39h 3Ah 3Bh 3Ch 44h 45h 46h 20h 21h 3Dh 3Eh 22h 23h 24h 25h 26h 27h 28h 29h 2Ah 47h 2Bh 2Ch 2Dh 2Eh 2Fh 3Fh 40h 41h 42h 43h
51/186
ST10F280
Hardware traps are exceptions or error conditions that arise during run-time. They cause immediate non-maskable system reaction similar to a standard interrupt service (branching to a dedicated vector table location). The occurrence of a hardware trap is additionally signified by an individual bit in the trap flag register (TFR). Except when another higher prioritized trap service is in progress, a hardware trap will interrupt any other program execution. Hardware trap services cannot not be interrupted by standard interrupt or by PEC interrupts. 8.3 - Interrupt Control Registers All interrupt control registers are identically organized. The lower 8 bit of an interrupt control register contain the complete interrupt status xxIC (yyyyh / zzh)
15 14 13 12 11 10 9 -
information of the associated source, which is required during one round of prioritization, the upper 8 bit of the respective register are reserved. All interrupt control registers are bit-addressable and all bit can be read or written via software. This allows each interrupt source to be programmed or modified with just one instruction. When accessing interrupt control registers through instructions which operate on Word data types, their upper 8 bit (15...8) will return zeros, when read, and will discard written data. The layout of the Interrupt Control registers shown below applies to each xxIC register, where xx stands for the mnemonic for the respective source. Reset Value: - - 00h
6 xxIE RW 5 4 ILVL RW 3 2 1 GLVL RW 0
SFR Area
8 7 xxIR RW
Bit GLVL Group Level
Function
Defines the internal order for simultaneous requests of the same priority. 3: Highest group priority 0: Lowest group priority ILVL Interrupt Priority Level Defines the priority level for the arbitration of requests. Fh: Highest priority level 0h: Lowest priority level xxIE Interrupt Enable Control Bit (individually enables/disables a specific source) `0': Interrupt Request is disabled `1': Interrupt Request is enabled xxIR Interrupt Request Flag `0': No request pending `1': This source has raised an interrupt request
52/186
ST10F280
8.4 - Exception and Error Traps List Table 8 shows all of the possible exceptions or error conditions that can arise during run-time : Table 8 : Exceptions or Error Conditions that Can Arise During Run-time
Exception Condition Reset Functions Hardware Reset Software Reset Watchdog Timer Overflow Class A Hardware Traps Non-Maskable Interrupt Stack Overflow Stack Underflow Class B Hardware Traps Undefined Opcode Protected Instruction Fault Illegal Word Operand Access Illegal Instruction Access Illegal External Bus Access MAC Trap UNDOPC PRTFLT ILLOPA ILLINA ILLBUS MACTRP BTRAP BTRAP BTRAP BTRAP BTRAP BTRAP 00'0028h 00'0028h 00'0028h 00'0028h 00'0028h 00'0028h 0Ah 0Ah 0Ah 0Ah 0Ah 0Ah I I I I I I MINIMUM Reserved Software Traps TRAP Instruction
*
Trap Flag
Trap Vector
Vector Location
Trap Number
Trap * Priority MAXIMUM
RESET RESET RESET
00'0000h 00'0000h 00'0000h
00h 00h 00h
III III III
NMI STKOF STKUF
NMITRAP STOTRAP STUTRAP
00'0008h 00'0010h 00'0018h
02h 04h 06h
II II II
[2Ch -3Ch] Any [00'0000h- 00'01FCh] in steps of 4h
[0Bh - 0Fh] Any [00h - 7Fh] Current CPU Priority
- All the class B traps have the same trap number (and vector) and the same lower priority compare to the class A traps and to the resets. - Each class A traps has a dedicated trap number (and vector). They are prioritized in the second priority level. - The resets have the highest priority level and the same trap number. - The PSW.ILVL CPU priority is forced to the highest level (15) when these exeptions are serviced.
53/186
ST10F280
9 - CAPTURE/COMPARE (CAPCOM) UNITS The ST10F280 has two 16 channels CAPCOM units as described in Figure 12. These support generation and control of timing sequences on up to 32 channels with a maximum resolution of 200ns at 40MHz CPU clock. The CAPCOM units are typically used to handle high speed I/O tasks such as pulse and waveform generation, pulse width modulation (PMW), Digital to Analog (D/A) conversion, software timing, or time recording relative to external events. Four 16-bit timers (T0/T1, T7/T8) with reload registers provide two independent time bases for the capture/compare register array (See Figure 13 and Figure 14). The input clock for the timers is programmable to several prescaled values of the internal system clock, or may be derived from an overflow/ underflow of timer T6 in module GPT2. This Figure 12 : CAPCOM Unit Block Diagram
Reload Register TxREL x = 0, 7
provides a wide range of variation for the timer period and resolution and allows precise adjustments to application specific requirements. In addition, external count inputs for CAPCOM timers T0 and T7 allow event scheduling for the capture/compare registers relative to external events. Each of the two capture/compare register arrays contain 16 dual purpose capture/compare registers, each of which may be individually allocated to either CAPCOM timer T0 or T1 (T7 or T8, respectively), and programmed for capture or compare functions. Each of the 32 registers has one associated port pin which serves as an input pin for triggering the capture function, or as an output pin to indicate the occurrence of a compare event. Figure 12 shows the basic structure of the two CAPCOM units.
CPU Clock
2n n = 3...10 Tx Input Control Interrupt Request CAPCOM Timer Tx
TxIN
Pin
GPT2 Timer T6 Over / Underflow
Pin Mode Control (Capture or Compare)
16 Capture inputs Compare outputs
Sixteen 16-bit (Capture/Compare) Registers
16 Capture / Compare * Interrupt Requests
Pin CPU Clock
2n n = 3...10 Ty Input Control GPT2 Timer T6 Over / Underflow Interrupt Request CAPCOM Timer Ty
Reload Register TyREL
y = 1, 8
Note
The CAPCOM2 unit provides 16 capture inputs, but only 12 compare outputs. CC24I to CC27I are inputs only.
54/186
ST10F280
Figure 13 : Block Diagram of CAPCOM Timers T0 and T7
Txl Input Control CPU Clock X MUX Interrupt Request Reload Register TxREL
GPT2 Timer T6 Over / Underflow Edge Select
CAPCOM Timer Tx
TxIR
TxR TxIN Pin Txl TxM
Txl
x = 0, 7
Figure 14 : Block Diagram of CAPCOM Timers T1 and T8
Txl Reload Register TxREL
CPU Clock
X MUX CAPCOM Timer Tx TxIR Interrupt Request
GPT2 Timer T6 Over / Underflow
TxM
TxR
x = 1, 8
Note: When an external input signal is connected to the input lines of both T0 and T7, these timers count the input signal synchronously. Thus the two timers can be regarded as one timer whose contents can be compared with 32 capture registers. When a capture/compare register has been selected for capture mode, the current contents of the allocated timer will be latched (captured) into the capture/compare register in response to an external event at the port pin which is associated with this register. In addition, a specific interrupt request for this capture/compare register is generated. Either a positive, a negative, or both a positive and a negative external signal transition at the pin can be selected as the triggering event. The
contents of all registers which have been selected for one of the five compare modes are continuously compared with the contents of the allocated timers. When a match occurs between the timer value and the value in a capture /compare register, specific actions will be taken based on the selected compare mode (see Table 9). The input frequencies fTx, for the timer input selector Tx, are determined as a function of the CPU clocks. The timer input frequencies, resolution and periods which result from the selected pre-scaler option in TxI when using a 40MHz CPU clock are listed in the Table 10. The numbers for the timer periods are based on a reload value of 0000h. Note that some numbers may be rounded to 3 significant figures.
55/186
ST10F280
Table 9 : Compare Modes
Compare Modes Mode 0 Mode 1 Mode 2 Mode 3 Double Register Mode Function Interrupt-only compare mode; several compare interrupts per timer period are possible Pin toggles on each compare match; several compare events per timer period are possible Interrupt-only compare mode; only one compare interrupt per timer period is generated Pin set `1' on match; pin reset `0' on compare time overflow; only one compare event per timer period is generated Two registers operate on one pin; pin toggles on each compare match; several compare events per timer period are possible.
Table 10 : CAPCOM Timer Input Frequencies, Resolution and Periods
Timer Input Selection TxI fCPU = 40MHz 000b Pre-scaler for fCPU Input Frequency Resolution Period 8 5MHz 200ns 13.1ms 001b 16 2.5MHz 400ns 26.2ms 010b 32 1.25MHz 0.8s 52.4ms 011b 64 625kHz 1.6s 104.8ms 100b 128 312.5kHz 3.2s 209.7ms 101b 256 156.25kHz 6.4s 419.4ms 110b 512 78.125kHz 12.8s 838.9ms 111b 1024 39.1kHz 25.6s 1.678s
56/186
ST10F280
10 - GENERAL PURPOSE TIMER UNIT The GPT unit is a flexible multifunctional timer/ counter structure which is used for time related tasks such as event timing and counting, pulse width and duty cycle measurements, pulse generation, or pulse multiplication. The GPT unit contains five 16-bit timers organized into two separate modules GPT1 and GPT2. Each timer in each module may operate independently in several different modes, or may be concatenated with another timer of the same module. 10.1 - GPT1 Each of the three timers T2, T3, T4 of the GPT1 module can be configured individually for one of four basic modes of operation: timer, gated timer, counter mode and incremental interface mode. In timer mode, the input clock for a timer is derived from the CPU clock, divided by a programmable prescaler. In counter mode, the timer is clocked in reference to external events. Pulse width or duty cycle measurement is supported in gated timer mode where the operation of a timer is controlled by the `gate' level on an external input pin. For these purposes, each timer has one associated port pin (TxIN) which serves as gate or clock input. Table 11 lists the timer input frequencies, resolution and periods for each pre-scaler option at 40MHz CPU clock. This also applies to the Gated Timer Mode of T3 and to the auxiliary timers T2 and T4 in Timer and Gated Timer Mode. The count direction (up/down) for each timer is programmable by software or may be altered dynamically by an external signal on a port pin (TxEUD). In Incremental Interface Mode, the GPT1 timers (T2, T3, T4) can be directly connected to the incremental position sensor signals A and B by their respective inputs TxIN and TxEUD. Direction and count signals are internally derived from these two input signals so that the contents of the respective timer Tx corresponds to the sensor position. The third position sensor signal TOP0 can be connected to an interrupt input. Timer T3 has output toggle latches (TxOTL) which changes state on each timer over flow / underflow. The state of this latch may be output on port pins (TxOUT) for time out monitoring of external hardware components, or may be used internally to clock timers T2 and T4 for high resolution of long duration measurements. In addition to their basic operating modes, timers T2 and T4 may be configured as reload or capture registers for timer T3. When used as capture or reload registers, timers T2 and T4 are stopped. The contents of timer T3 is captured into T2 or T4 in response to a signal at their associated input pins (TxIN). Timer T3 is reloaded with the contents of T2 or T4 triggered either by an external signal or by a selectable state transition of its toggle latch T3OTL. When both T2 and T4 are configured to alternately reload T3 on opposite state transitions of T3OTL with the low and high times of a PWM signal, this signal can be constantly generated without software intervention.
Table 11 : GPT1 Timer Input Frequencies, Resolution and Periods
Timer Input Selection T2I / T3I / T4I fCPU = 40MHz 000b Pre-scaler factor Input Freq Resolution Period maximum 8 5MHz 200ns 13.1ms 001b 16 2.5MHz 400ns 26.2ms 010b 32 1.25MHz 0.8s 52.4ms 011b 64 625kHz 1.6s 104.8ms 100b 128 312.5kHz 3.2s 209.7ms 101b 256 156.25kHz 6.4s 419.4ms 110b 512 78.125kHz 12.8s 838.9ms 111b 1024 39.1kHz 25.6s 1.678s
57/186
ST10F280
Figure 15 : Block Diagram of GPT1
T2EUD
U/D GPT1 Timer T2 2 n=3...10
n
CPU Clock
T2IN
T2 Mode Control
Interrupt Request
Reload Capture
CPU Clock
2n n=3...10
T3IN T3EUD
T3 Mode Control
T3OUT GPT1 Timer T3 U/D Capture Reload T3OTL
T4IN CPU Clock
2n n=3...10
T4 Mode Control
Interrupt Request Interrupt Request
GPT1 Timer T4 U/D
T4EUD
10.2 - GPT2 The GPT2 module provides precise event control and time measurement. It includes two timers (T5, T6) and a capture/reload register (CAPREL). Both timers can be clocked with an input clock which is derived from the CPU clock via a programmable prescaler or with external signals. The count direction (up/down) for each timer is programmable by software or may additionally be altered dynamically by an external signal on a port pin (TxEUD). Concatenation of the timers is supported via the output toggle latch (T6OTL) of timer T6 which changes its state on each timer overflow/underflow. The state of this latch may be used to clock timer T5, or it may be output on a port pin (T6OUT). The overflow / underflow of timer T6 can additionally be used to clock the CAPCOM timers T0 or T1,
and to cause a reload from the CAPREL register. The CAPREL register may capture the contents of timer T5 based on an external signal transition on the corresponding port pin (CAPIN), and timer T5 may optionally be cleared after the capture procedure. This allows absolute time differences to be measured or pulse multiplication to be performed without software overhead. The capture trigger (timer T5 to CAPREL) may also be generated upon transitions of GPT1 timer T3 inputs T3IN and/or T3EUD. This is advantageous when T3 operates in Incremental Interface Mode. Table 12 lists the timer input frequencies, resolution and periods for each pre-scaler option at 40MHz CPU clock. This also applies to the Gated Timer Mode of T6 and to the auxiliary timer T5 in Timer and Gated Timer Mode.
Table 12 : GPT2 Timer Input Frequencies, Resolution and Period
Timer Input Selection T5I / T6I fCPU = 40MHz 000b Pre-scaler factor Input Freq Resolution Period maximum 4 10MHz 100ns 6.55ms 001b 8 5MHz 200ns 13.1ms 010b 16 2.5MHz 400ns 26.2ms 011b 32 1.25MHz 0.8s 52.4ms 100b 64 625kHz 1.6s 104.8ms 101b 128 312.5kHz 3.2s 209.7ms 110b 256 156.25kHz 6.4s 419.4ms 111b 512 78.125kHz 12.8s 838.9ms
58/186
ST10F280
Figure 16 : Block Diagram of GPT2
T5EUD CPU Clock
U/D 2n n=2...9 T5 Mode Control Clear Capture GPT2 Timer T5 Interrupt Request
T5IN
CAPIN GPT2 CAPREL
Interrupt Request
Reload
Interrupt Request Toggle FF
T6IN CPU Clock
2n n=2...9
T6 Mode Control
GPT2 Timer T6 U/D
T60TL
T6OUT to CAPCOM Timers
T6EUD
59/186
ST10F280
11 - PWM MODULE 11.1 - Standard PWM Module The pulse width modulation module can generate up to four PWM output signals using edge-aligned or centre-aligned PWM. In addition, the PWM module can generate PWM burst signals and Figure 17 : Block Diagram of PWM Module
PPx Period Register *
single shot outputs. The Table 13 shows the PWM frequencies for different resolutions. The level of the output signals is selectable and the PWM module can generate interrupt requests.
Comparator
Match
Clock 1 Clock 2
Input Control
Run
* PTx 16-bit Up/Down Counter
Up/Down/ Clear Control
Comparator
Match
Output Control Enable
POUTx
Shadow Register
Write Control
* User readable / writeable register
PWx Pulse Width Register *
Table 13 : PWM Unit Frequencies and Resolution at 40MHz CPU Clock
Mode 0 CPU Clock/1 CPU Clock/64 Mode 1 CPU Clock/1 CPU Clock/64 Resolution 25ns 1.6s Resolution 25ns 1.6s 8-bit 156.25kHz 2.44Hz 8-bit 78.12kHz 1.22kHz 10-bit 39.06kHz 610.35Hz 10-bit 19.53kHz 305.17Hz 12-bit 9.77kHz 152.58Hz 12-bit 4.88kHz 76.29Hz 14-bit 2.44Hz 38.15Hz 14-bit 1.22kHz 19.07Hz 16-bit 610.35Hz 9.54Hz 16-bit 305.17Hz 4.77Hz
60/186
ST10F280
11.2 - New PWM Module : XPWM The new Pulse Width Modulation (XPWM) Module of the ST10F280 is mapped on the XBUS interface (Address range 00'EC00h-00'ECFFh) and allows the generation of up to 4 independent PWM signals.The XPWM is enabled by setting XPEN bit 2 of the SYSCON register and bit 4 of the new XPERCON register. The frequency range of these XPWM signals for a 40MHz CPU clock is from 9.6Hz up to 20MHz for edge aligned signals. For center aligned signals the frequency range is 4.8Hz up to 10MHz (see detailed description). The minimum values depend on the width (16 bit) and the resolution (CLK/1 or CLK/64) of the XPWM timers. The maximum values assume that the XPWM output signal changes with every cycle of the respective timer. In a real application the maximum XPWM frequency will depend on the required resolution of the XPWM output signal (see Figure 18). The Pulse Width Modulation Module consists of 4 independent PWM channels. Each channel has a 16-bit up/down counter XPTx, a 16-bit period register XPPx with a shadow latch, a 16-bit pulse width register XPWx with a shadow latch, two comparators, and the necessary control logic. The operation of all four channels is controlled by two common control registers, XPWMCON0 and XPWMCON1, and the interrupt control and status is handled by one interrupt control register XP2IC, which is also common for all channels (see Figure 19).
Figure 18 : SFRs and Port Pins Associated with the XPWM Module
Data Registers
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 XPP0 Y Y Y Y Y Y YYYYYYYYYY XPT0
Counter Registers
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Y Y Y Y Y Y YYYYYYYYYY XPWMCON0
Control Registers and Interrupt Control
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Y Y Y Y Y Y YYYYYYYYYY
XPW0
Y Y Y Y Y Y YYYYYYYYYY
XPWMCON1
YY- Y-
- - - YYYYYYYY
XPP1
Y Y Y Y Y Y YYYYYYYYYY
XPT1
Y Y Y Y Y Y YYYYYYYYYY
XPW1
Y Y Y Y Y Y YYYYYYYYYY
XPOLAR
-
-
-
-
-
- - - - - - - YYYY
XPP2
Y Y Y Y Y Y YYYYYYYYYY
XPT2
Y Y Y Y Y Y YYYYYYYYYY
XPW2
Y Y Y Y Y Y YYYYYYYYYY
XP2IC E
-
-
-
-
-
- - - YYYYYYYY
XPP3
Y Y Y Y Y Y YYYYYYYYYY
XPT3
Y Y Y Y Y Y YYYYYYYYYY
XPW3
Y Y Y Y Y Y YYYYYYYYYY
Output on dedicated pins
XPWM0 XPWM1 XPWM2 XPWM3
XPPx XPWx XPTx XPWMCONx XPOLARx XP2IC
XPWM Period Register x XPWM Pulse WIdth Register x XPWM Counter Register x XPWM Control Register 0/1 XPWM Output Polarity Control Register 0/1 XPWM Interrupt Control Register
Y E
: This bit has a XPWM function : This bit has no XPWH function or is not implemnented : This register belongs to ESFR area
Figure 19 : XPWM Channel Block Diagram
XPPx Period Register *
Comparator
Match
Clock 1 Clock 2
Input Control
Run
* XPTx 16-bit Up/Down Counter
Up/Down/ Clear Control
Comparator
Match
Output Control Enable
XPOUTx
Shadow Register
Write Control
* User readable / writeable register
* XPWx Pulse Width Register
61/186
ST10F280
11.2.1 - Operating Modes The XPWM module provides four different operating modes: - Mode 0 Standard PWM generation (edge aligned PWM) available on all four channels - Mode 1 Symmetrical PWM generation (center aligned PWM) available on all four channels - Burst mode combines channels 0 and 1 - Single shot mode available on channels 2 and 3 Note: The output signals of the XPWM module are XORed with the outputs of the respective bits of XPOLAR register. After reset these bits are cleared, so the PWM signals are directly driven to the output pins. By setting the respective bits of XPOLAR register to `1' the PWM signal may be inverted (XORed with `1') before being driven to the output pin. The descriptions below refer to the standard case after reset, i.e. direct driving. continues counting up with subsequent count pulses. The XPWM output signal is switched to high level when the timer contents are equal to or greater than the contents of the pulse width shadow register. The signal is switched back to low level when the respective timer is reset to 0000h, i.e. below the pulse width shadow register. The period of the resulting PWM signal is determined by the value of the respective XPPx shadow register plus 1, counted in units of the timer resolution. PWM_PeriodMode0 = [XPPx] + 1
The duty cycle of the XPWM output signal is controlled by the value in the respective pulse width shadow register. This mechanism allows the selection of duty cycles from 0% to 100% including the boundaries. For a value of 0000h the output will remain at a high level, representing a duty cycle of 100%. For a value higher than the value in the period register the output will remain at a low level, which corresponds to a duty cycle of 0%. The Figure 20 illustrates the operation and output 11.2.1.1 - Mode 0: Standard PWM Generation waveforms of a XPWM channel in mode 0 for dif(Edge Aligned PWM) ferent values in the pulse width register. Mode 0 is selected by clearing the respective bit XPMx in register XPWMCON1 to `0'. In this mode This mode is referred to as Edge Aligned PWM, the timer XPTx of the respective XPWM channel because the value in the pulse width (shadow) is always counting up until it reaches the value in register only effects the positive edge of the outthe associated period shadow register. Upon the put signal. The negative edge is always fixed and next count pulse the timer is reset to 0000h and related to the clearing of the timer. Figure 20 : Operation and Output Waveform in Mode 0
XPPx Period=7 7 6 5 XPTx Count Value 1 0 XPWx Pulse Width=0 XPWx=1 XPWx=2 XPWx=4 XPWx=6 XPWx=7 XPWx=8 LSR Latch Shadow Registers Interrupt Request LSR LSR 2 0 4 3 1 2 0 3 1 Duty Cycle 100% 87.5% 75% 50% 25% 12.5% 0% 4 6 5 7 6 7
62/186
ST10F280
11.2.1.2 - Mode 1: Symmetrical PWM Generation (Center Aligned PWM) Mode 1 is selected by setting the respective bit XPMx in register XPWMCON1 to `1'. In this mode the timer XPTx of the respective XPWM channel is counting up until it reaches the value in the associated period shadow register. Upon the next count pulse the count direction is reversed and the timer starts counting down now with subsequent count pulses until it reaches the value 0000H. Upon the next count pulse the count direction is reversed again and the count cycle is repeated with the following count pulses. The XPWM output signal is switched to a high level when the timer contents are equal to or greater than the contents of the pulse width shadow register while the timer is counting up. The signal is switched back to a low level when the respective timer has counted down to a value below the contents of the pulse width shadow register. So in mode 1 this PWM value controls both edges of the output signal. Note that in mode 1 the period of the PWM signal is twice the period of the timer: PWM_PeriodMode1 = 2 * ([XPPx] + 1) The figure below illustrates the operation and output waveforms of a XPWM channel in mode 1 for different values in the pulse width register. This mode is referred to as Center Aligned PWM, because the value in the pulse width (shadow) register effects both edges of the output signal symmetrically.
Figure 21 : Operation and Output Waveform in Mode 1
XPPx Period=7 7 6 5 XPTx Count Value 2 XPWx Pulse Width=0 XPWx=1 XPWx=2 XPWx=4 XPWx=6 XPWx=7 XPWx=8 LSR Latch Shadow Registers Interrupt Reques Change Count Direction LSR 1 0 0 1 2 4 3 7 6 5 4 3 2 1 0 Duty Cycle 100% 87.5% 75% 50% 25% 12.5% 0% 1
63/186
ST10F280
11.2.1.3 - Burst Mode Burst mode is selected by setting bit PB01 in register XPWMCON1 to `1'. This mode combines the signals from XPWM channels 0 and 1 onto the port pin of channel 0. The output of channel 0 is replaced with the logical AND of channels 0 and 1. The output of channel 1 can still be used at its associated output pin (if enabled). Each of the two channels can either operate in mode 0 or 1. Note: It is guaranteed by design, that no spurious spikes will occur at the output pin of channel 0 in this mode. The output of the AND gate will be transferred to the output pin synchronously to internal clocks. XORing of the PWM signal and the port output latch value is done after the ANDing of channel 0 and 1.
Figure 22 : Operation and Output Waveform in Burst Mode
XPP0 Period Value
XPT0 Count Value
Channel 0
XPP1 XPT1
Channel 1
Resulting Output XPOUT0
64/186
ST10F280
11.2.1.4 - Single Shot Mode Single shot mode is selected by setting the respective bit PSx in register XPWMCON1 to `1'. This mode is available for XPWM channels 2 and 3. In this mode the timer XPTx of the respective XPWM channel is started via software and is counting up until it reaches the value in the associated period shadow register. Upon the next count pulse the timer is cleared to 0000h and stopped via hardware, i.e. the respective PTRx bit is cleared. The XPWM output signal is switched to high level when the timer contents are equal to or greater than the contents of the pulse width shadow register. The signal is switched back to low level when the respective timer is cleared, i.e. is below the pulse width shadow register. Thus starting a XPWM timer in single shot mode produces one single pulse on the respective port pin, provided that the pulse width value is between 0000h and the period value. In order to generate a further pulse, the timer has to be started again via software by setting bit PTRx (see Figure 23). After starting the timer (i.e. PTRx = `1') the output pulse may be modified via software. Writing to timer XPTx changes the positive and/or negative edge of the output signal, depending on whether the pulse has already started (i.e. the output is high) or not (i.e. the output is still low). This (multiple) re-triggering is always possible while the timer is running, i.e. after the pulse has started and before the timer is stopped. Loading counter XPTx directly with the value in the respective XPPx shadow register will abort the current PWM pulse upon the next clock pulse (counter is cleared and stopped by hardware). By setting the period (XPPx), the timer start value (XPTx) and the pulse width value (XPWx) appropriately, the pulse width (tw) and the optional pulse delay (td) may be varied in a wide range.
Figure 23 : Operation and Output Waveform in Single Shot Mode
XPPx Period=7 7 6 5 XPTx Count Value 1 0 XPWx Pulse Width=4 Set PTRx by Software XPPx Period=7 LSR PTRx Reset by Hardware PTx stopped Set PTRx by Software for Next Pulse LSR 2 0 4 3 1 2 3 4 5 6 7
7 6 5 XPTx Count Value 1 0 XPWx Pulse Width=4 tD Retrigger after Pulse has started : Write PWx value to PTx 2 tW 0 tD 4 3 1 tW 4 5 4 6 5 6
7
Trigger before Pulse has started : Write PWx value to PTx; Shortens Delay Time tD
65/186
ST10F280
11.2.2 - XPWM Module Registers The XPWM module is controlled via two sets of registers. The waveforms are selected by the channel specific registers XPTx (timer), XPPx (period) and XPWx (pulse width). Three common registers control the operating modes and the general functions (XPWMCON0 and XPWMCON1) of the PWM module as well as the interrupt behavior (XP2IC). Up/Down Counters XPTx Each counter XPTx of a PWM channel is clocked either directly by the CPU clock or by the CPU clock divided by 64. Bit PTIx in register XPWMCON0 selects the respective clock source. A XPWM counter counts up or down (controlled by hardware), while its respective run control bit PTRx is set. A timer is started (PTRx = '1') via software and is stopped (PTRx = '0') either via hardware or software, depending on its operating mode. Control bit PTRx enables or disables the clock input of counter XPTx rather than controlling the XPWM output signal. Note For the register locations please refer to the Table 14. either reset to 0000h, or the count direction is switched from counting up to counting down, depending on the selected operating mode of that XPWM channel. For the register locations refer to the Table 14. Pulse Width Registers XPWx This 16-bit register holds the actual PWM pulse width value which corresponds to the duty cycle of the PWM signal. This register is buffered with a shadow register. The CPU accesses the XPWx register while the hardware compares the contents of the shadow register with the contents of the associated counter XPTx. The shadow register is loaded from the respective XPWx register at the beginning of every new PWM cycle, or upon a write access to XPWx, while the timer is stopped.When the counter value is greater than or equal to the shadow register value, the PWM signal is set, otherwise it is reset. The output of the comparators may be described by the boolean formula: PWM output signal = [XPTx] [XPWx shadow latch]. This type of comparison allows a flexible control of the PWM signal. For the register locations refer to theTable 14. Table 14 : XPWM Module Channel Specific Register Addresses
Register XPW0 XPW1 XPW2 XPW3 Address EC30h EC32h EC34h EC36h Register XPT0 XPT1 XPT2 XPT3 XPP0 XPP1 XPP2 These registers are not bit-addressable. XPP3 Address EC10h EC12h EC14h EC16h EC20h EC22h EC24h EC26h
Table 15 summarizes the XPWM frequencies that result from various combinations of operating mode, counter resolution (input clock) and pulse width resolution. Period Registers XPPx The 16-bit period register XPPx of a XPWM channel determines the period of a PWM cycle, i.e. the frequency of the PWM signal. This register is buffered with a shadow register. The shadow register is loaded from the respective XPPx register at the beginning of every new PWM cycle, or upon a write access to XPPx, while the timer is stopped. The CPU accesses the XPPx register while the hardware compares the contents of the shadow register with the contents of the associated counter XPTx. When a match is found between counter and XPPx shadow register, the counter is Table 15 : XPWM Frequency
Mode 0 CPU Clock/1 CPU Clock/64 Mode 1 CPU Clock/1 CPU Clock/64 66/186 Resolution 25ns 1.6s Resolution 25ns 1.6s 8-bit 156.25kHz 2.44Hz 8-bit 78.12kHz 1.22kHz
10-bit 39.06kHz 610.35Hz 10-bit 19.53kHz 305.17Hz
12-bit 9.77kHz 152.58Hz 12-bit 4.88kHz 76.29Hz
14-bit 2.44Hz 38.15Hz 14-bit 1.22kHz 19.07Hz
16-bit 610.35Hz 9.54Hz 16-bit 305.17Hz 4.77Hz
ST10F280
XPWM Control Registers Register XPWMCON0 controls the function of the timers of the four XPWM channels and the channel specific interrupts. Having the control bits organized in functional groups allows e.g. to start or stop all 4 XPWM timers simultaneously with one bitfield instruction. Note: This register is not bit-addressable. XPWMCON0 (EC00h)
15 PIR3 RW Bit PTRx 0 1 PTIx 0 1 PIEx 0 1 PIRx 0 1 XPWM Timer x Run Control Bit Timer XPTx is disconnected from its input clock Timer XPTx is running XPWM Timer x Input Clock Selection Timer XPTx clocked with CLKCPU TimerX PTx clocked with CLKCPU / 64 XPWM Channel x Interrupt Enable Flag Interrupt from channel x disabled Interrupt from channel x enabled XPWM Channel x Interrupt Request Flag No interrupt request from channel x Channel x interrupt pending (must be reset via software) 14 PIR2 RW 13 PIR1 RW 12 PIR0 RW 11 PIE3 RW 10 PIE2 RW 9 PIE1 RW 8 PIE0 RW 7 PTI3 RW 6 PTI2 RW 5 PTI1 RW 4 PTI0 RW 3
Reset Value: 0000h
2 1 0 PTR3 PTR2 PTR1 PTR0 RW RW RW RW
Function
Register XPWMCON1 controls the operating modes and the outputs of the four XPWM channels. The basic operating mode for each channel (standard=edge aligned, or symmetrical=center aligned PWM mode) is selected by the mode bits XPMx. Burst mode (channels 0 and 1) and single shot mode (channel 2 or 3) are selected by separate control bits. The output signal of each XPWM channel is individually enabled by bit PENx. If the output is not enabled the respective pin can only be used to generate an interrupt request. Note: This register is not bit-addressable. XPWMCON1 (EC02h)
15
PS3
Reset Value: 0000h
11 10 9 8 7
PM3
14
PS2
13 -
12
PB01
6
PM2
5
PM1
4
PM0
3
PEN3
2
PEN2
1
PEN1
0
PEN0
RW Bit PENx
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
Function XPWM Channel x Output Enable Bit 0 1 Channel x output signal disabled, generate interrupt only Channel x output signal enabled XPWM Channel x Mode Control Bit 0 1 Channel x operates in mode 0, edge aligned PWM Channel x operates in mode 1, center aligned PWM XPWM Channel 0/1 Burst Mode Control Bit 0 1 Channels 0 and 1 work independently in respective standard mode Outputs of channels 0 and 1 are ANDed to XPWM0 in burst mode XPWM Channel x Single Shot Mode Control Bit 0 1 Channel x works in respective standard mode Channel x operates in single shot mode 67/186
PMx
PB01
PSx
ST10F280
11.2.3 - Interrupt Request Generation Each of the four channels of the XPWM module can generate an individual interrupt request. Each of these "channel interrupts" can activate the common "module interrupt", which actually interrupts the CPU. This common module interrupt is controlled by the XPWM Module Interrupt Control register XP2IC( Xperipherals 2 control register). The interrupt service routine can determine the active channel interrupt(s) from the channel specific interrupt request flags PIRx in register XPWMCON0. The interrupt request flag PIRx of a channel is set at the beginning of a new PWM cycle, i.e. upon loading the shadow registers. This indicates that registers XPPx and XPWx are now ready to receive a new value. If a channel interrupt is enabled via its respective PIEx bit, also the common interrupt request flag XP2IR in register XP2IC is set, provided that it is enabled via the common interrupt enable bit XP2IE. Note: The channel interrupt request flags (PIRx in register XPWMCON0) are not automatically cleared by hardware upon entry into the interrupt service routine, so they must be cleared via software. The module interrupt request flag XP2IR is cleared by hardware upon entry into the service routine, regardless of how many channel interrupts were active. However, it will be set again if during execution of the service routine a new channel interrupt request is generated. XP2IC (F196h / CBh)
15 14 13 12 11 10 9 8 -
ESFR
7 6 5 4 ILVL RW 3 XP2IR XP2IE RW RW
Reset Value: - - 00h
2 1 GLVL RW 0
Note: Refer to the general Interrupt Control Register description for an explanation of the control fields. 11.2.4 - XPWM Output Signals The output signals of the four XPWM channels are XPWM3...XPWM0. The output signal of each PWM channel is individually enabled by control bit PENx in register XPWMCON1. The XPWM signals are XORed with the outputs of the register XPOLAR(3...0) before being driven to the output pins. This allows driving the XPWM signal directly to the output pin (XPOLAR.x='0') or driving the inverted XPWM signal (XPOLAR.x='1'). Figure 24 : XPWM Output Signal Generation
PWM 3 XOR XPWMCON1.PEN3 Latch XPOLAR.3 Pin XPWM3
PWM 2 XOR XPWMCON1.PEN2 Latch XPOLAR.2 Pin XPWM2
PWM 1 XOR
XPWMCON1.PEN1
Latch XPOLAR.1
Pin XPWM1
& PWM 0 XOR XPWMCON1.PEN0 XPWMCON1.PB01 Latch XPOLAR.0 Pin XPWM0
68/186
ST10F280
11.2.5 - XPOLAR Register (polarity of the XPWM channel) XPOLAR (EC04h)
15 14 13 12 11 10 9 8 7 6 5 4
-
Reset Value: 0000h
3 2 1 0 XPOLAR.3 XPOLAR.2 XPOLAR.1 XPOLAR.0 RW RW RW RW
Bit XPOLAR.x 0 1 XPOLAR Channel x polarity Bit Polarity of Channel x is normal Polarity of Channel x is inverted
Function
Software Control of the XPWM Outputs In an application the XPWM output signals are generally controlled by the XPWM module. However, it may be necessary to influence the level of the XPWM output pins via software either to initialize the system or to react on some extraordinary condition, e.g. a system fault or an emergency. Clearing the timer run bit PTRx stops the associated counter and leaves the respective output at its current level. The individual XPWM channel outputs are controlled by comparators according to the formula:
- PWM output signal = [PTx] [PWx shadow latch]. So whenever software changes registers XPTx, the respective output will reflect the condition after the change. Loading timer XPTx with a value greater than or equal to the value in XPWx immediately sets the respective output, a XPTx value below the XPWx value clears the respective output. Note To prevent further PWM pulses from occurring after such a software intervention the respective counter must be stopped first.
69/186
ST10F280
12 - PARALLEL PORTS In order to accept or generate single external control signals or parallel data, the ST10F280 provides up to 143 parallel I/O lines, organized into two 16-bit I/O port (Port 2, XPort9), eight 8-bit I/O ports (PORT0 made of P0H and P0L, PORT1 made of P1H and P1L, Port 4, Port 6, Port 7, Port 8) , one 15-bit I/O port (Port 3) and two 16-bit input port (Port 5, XPort10). These port lines may be used for general purpose Input/Output, controlled via software, or may be used implicitly by ST10F280's integrated peripherals or the External Bus Controller. All port lines are bit addressable, and all input/output lines are individually (bit-wise) programmable as inputs or outputs via direction registers (except Port 5, XPort10). The I/O ports are true bidirectional ports which are switched to high impedance state when configured as inputs. The output drivers of seven I/O ports (2, 3, 4, 6, 7, 8, 9) can be configured (pin by pin) for push/pull operation or open-drain operation via ODPx control registers. The output driver of the pads are programmable to adapt the edge characteristics to the application requirement and to improve the EMI behaviour. This is possible using the POCONx registers for Ports P0L, P0H, P1L, P1H, P2, P3, P4, P6, P7, P8. The output driver capabilities of ALE, RD and WR control lines are programmable with the dedicated bits of POCON20 control register. The input threshold levels are programmable (TTL/CMOS) for five ports (2, 3, 4, 7, 8) with the PICON register control bits. The logic level of a pin is clocked into the input latch once per state time, regardless whether the port is configured for input or output. A write operation to a port pin configured as an input causes the value to be written into the port output latch, while a read operation returns the latched state of the pin itself. A read-modify-write operation reads the value of the pin, modifies it, and writes it back to the output latch. Writing to a pin configured as an output (DPx.y=`1') causes the output latch and the pin to have the written value, since the output buffer is enabled. Reading this pin returns the value of the output latch. A read-modify-write operation reads the value of the output latch, modifies it, and writes it back to the output latch, thus also modifying the level at the pin. Note: The new I/O ports (XPort9, XPort10) are not mapped on the SFR space but on the internal XBUS interface . The XPort9 and XPort10 are enabled by setting XPEN bit 2 of the SYSCON register and bit 3 of the new XPERCON register. On the XBUS interface, the registers are not bit-addressable.
70/186
Data Input / Output Register
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DP0L E - - - Y Y Y Y Y Y Y Y PICON E - - - Y Y - Y Y Y Y Y POCON0L E 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - - - YYYYYYYY
Direction Control Registers
Threshold / Open Drain Control
Output Driver Control Register
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
P0L
-
-
-
-
-
- - - YYYYYYYY
P0H - - - YYYYYYYY POCON0H E -
-
-
-
-
- - - YYYYYYYY
DP0H E
- - - YYYYYYYY
P1L -
-
-
-
-
-
- - - YYYYYYYY
DP1L E - - - YYYYYYYY POCON1L E
-
- - - YYYYYYYY
P1H - - - YYYYYYYY POCON1H E
-
-
-
-
- - - YYYYYYYY
DP1H E -
-
-
-
- - - YYYYYYYY
P2
Y Y Y Y Y Y YYYYYYYYYY DP2 Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y POCON2 E
Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y ODP2 E
Y Y Y Y Y Y YYYYYYYYYY
P3
Y - Y Y Y Y YYYYYYYYYY DP3
Y - Y Y Y Y Y Y Y Y Y Y Y Y Y Y ODP3 E
-
- Y - Y Y Y Y Y Y Y Y Y Y Y Y POCON3 E
Y - Y Y Y Y YYYYYYYYYY
Figure 25 : SFRs Associated with the Parallel Ports
P4 P5DIDIS Y Y Y Y Y Y YYYYYYYYYY -
-
-
-
-
-
- - - YYYYYYYY
DP4
-
- - - Y Y Y Y Y Y Y Y ODP4 E
-
- - - YY - - - - - -
POCON4 E
-
-
-
-
-
- - - YYYYYYYY
P5
Y Y Y Y Y Y YYYYYYYYYY
P6
-
-
-
-
-
- - - YYYYYYYY
DP6
- - - Y Y Y Y Y Y Y Y ODP6 E -
-
-
-
-
-
-
-
- - - Y Y Y Y Y Y Y Y POCON6 E
-
-
-
-
-
- - - YYYYYYYY
P7
DP7 - - - Y Y Y Y Y Y Y Y ODP7 E -
-
-
-
-
- - - YYYYYYYY
-
-
-
-
-
-
-
-
- - - Y Y Y Y Y Y Y Y POCON7 E
-
-
-
-
-
- - - YYYYYYYY
P8 -
-
-
-
-
-
- - - YYYYYYYY
DP8
-
- - - Y Y Y Y Y Y Y Y ODP8 E
-
- - - Y Y Y Y Y Y Y Y POCON8 E
-
-
-
-
-
- - - YYYYYYYY
PICON:
POCON20 E * -
-
-
-
-
- - - YYYYYYYY
P2LIN P2HIN P3LIN P3HIN P4LIN P7LIN P8LIN
* RD, WR, ALE lines only
Y E
: Bit has an I/O function : Bit has no I/O dedicated function or is not implemented : Register belongs to ESFR area
ST10F280
71/186
ST10F280
Figure 26 : XBUS Registers Associated with the Parallel Ports
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
XP9
Y Y Y Y Y YYYYYYYYYYY
XDP9
Y Y Y Y Y Y YYYYYYYYYY
XOP9
Y Y Y Y Y YYYYYYYYYYY
XP9SET
Y Y Y Y Y YYYYYYYYYYY
XP9SET
Y Y Y Y Y Y YYYYYYYYYY
XOP9SET
Y Y Y Y Y YYYYYYYYYYY
XP9CLR
Y Y Y Y Y YYYYYYYYYYY
XP9CLR Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y
XOP9CLR Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y
XP10
Y Y Y Y Y YYYYYYYYYYY
XP10DIDIS
Y Y Y Y Y YYYYYYYYYYY
XADCMUX
-
-
-
-
-
- -- -------Y
12.1 - Introduction 12.1.1 - Open Drain Mode In the ST10F280 some ports provide Open Drain Control. This make is possible to switch the output driver of a port pin from a push/pull configuration to an open drain configuration. In push/pull mode a port output driver has an upper and a lower transistor, thus it can actively drive the line either to a high or a low level. In open drain mode the upper transistor is always switched off, and the output driver can only actively drive the line to a low level. When writing a `1' to the port latch, the lower transistor is switched off and the output enters a high-impedance state. The high level must then be provided by an external pull-up device. With
this feature, it is possible to connect several port pins together to a Wired-AND configuration, saving external glue logic and/or additional software overhead for enabling/disabling output signals. This feature is implemented for ports P2, P3, P4, P6, P7 and P8 (see respective sections), and is controlled through the respective Open Drain Control Registers ODPx. These registers allow the individual bit-wise selection of the open drain mode for each port line. If the respective control bit ODPx.y is `0' (default after reset), the output driver is in the push/pull mode. If ODPx.y is `1', the open drain configuration is selected. Note that all ODPx registers are located in the ESFR space.
Figure 27 : Output Drivers in Push/Pull Mode and in Open Drain Mode
External Pullup
Pin
Pin
Q
Q
Push-Pull Output Driver
Open Drain Output Driver
72/186
ST10F280
12.1.2 - Input Threshold Control The standard inputs of the ST10F280 determine the status of input signals according to TTL levels. In order to accept and recognize noisy signals, CMOS-like input thresholds can be selected instead of the standard TTL thresholds for all pins of Port 2, Port 3, Port4, Port 7 and Port 8. These special thresholds are defined above the TTL thresholds and feature a defined hysteresis to prevent the inputs from toggling while the respective input signal level is near the thresholds. The Port Input Control register PICON is used to select these thresholds for each byte of the indicated ports, i.e. the 8-bit ports P7 and P8 are controlled by one bit each while ports P2 and P3 are controlled by two bits each. PICON (F1C4h / E2h)
15 14 13 12 11 10 9 -
ESFR
8 7 6 5 RW 4 3 P8LIN P7LIN RW RW
Reset Value:-00h
2 1 0 P4LIN P3HIN P3LIN P2HIN P2LIN RW RW RW RW RW
Bit PxLIN 0 1 PxHIN 0 1
Function Port x Low Byte Input Level Selection Pins Px.7...Px.0 switch on standard TTL input levels Pins Px.7...Px.0 switch on special threshold input levels Port x High Byte Input Level Selection Pins Px.15...Px.8 switch on standard TTL input levels Pins Px.15...Px.8 switch on special threshold input levels
All options for individual direction and output mode control are available for each pin, independent of the selected input threshold. The input hysteresis provides stable inputs from noisy or slowly changing external signals. Figure 28 : Hysteresis for Special Input Thresholds
Hysteresis Input level
Bit state
12.1.3 - Output Driver Control The port output control registers POCONx allow to select the port output driver characteristics of a port. The aim of these selections is to adapt the output drivers to the application's requirements, and to improve the EMI behaviour of the device. Two characteristics may be selected: Edge characteristic defines the rise/fall time for the respective output, ie. the transition time. Slow edge reduce the peak currents that are sinked/sourced when changing the voltage level of an external capacitive load. For a bus interface or pins that are changing at frequency higher than 1MHz, however, fast edges may still be required. Driver characteristic defines either the general driving capability of the respective driver, or if the driver strength is reduced after the target output level has been reached or not. Reducing the driver strength increases the output's internal resistance, which attenuates noise that is imported via the output line. For driving LEDs or power transistors, however, a stable high output current may still be required.
73/186
ST10F280
For each feature, a 2-bit control field (ie. 4 bits) is provided for each group of 4 port pads (ie. a port nibble), in port output control registers POCONx. POCONx (F0yyh / zzh) for 8-bit Ports
15 14 13 12 11 10 9 -
ESFR
8 7 RW 6 5 RW 4 3 PN1DC PN1EC
Reset Value: - - 00h
2 RW 1 RW 0 PN0DC PN0EC
POCONx (F0yyh / zzh) for 16-bit Ports
15 14 13 12 11 10 9 PN3DC RW Bit PNxEC 00 01 10 11 PNxDC 00 01 10 11 PN3EC RW PN2DC RW PN2EC RW
ESFR
8 7 6 5 4 3 PN1DC RW Function PN1EC RW
Reset Value: 0000h
2 1 0 PN0DC RW PN0EC RW
Port Nibble x Edge Characteristic (rise/fall time) Fast edge mode, rise/fall times depend on the driver's dimensioning. Slow edge mode, rise/fall times ~60 ns Reserved Reserved Port Nibble x Driver Characteristic (output current) High Current mode: Driver always operates with maximum strength. Dynamic Current mode: Driver strength is reduced after the target level has been reached. Low Current mode: Driver always operates with reduced strength. Reserved
Note: In case of reading an 8 bit P0CONX register, high Byte ( bit 15..8) is read as 00h. Port Control Register Allocation The table below lists the defined POCON registers and the allocation of control bitfields and port pins:
Control Register POCON0L POCON0H POCON1L POCON1H POCON2 POCON3 POCON4 POCON6 POCON7 POCON8 Physical Address F080h F082h F084h F086h F088h F08Ah F08Ch F08Eh F090h F092h 8-Bit Address 40h 41h 42h 43h 44h 45h 46h 47h 48h 49h P2.15...12 P3.15, P3.13...12 P2.11...8 P3.11...8 Controlled Port P0L.7...4 P0H.7...4 P1L.7...4 P1H.7...4 P2.7...4 P3.7...4 P4.7...4 P6.7...4 P7.7...4 P8.7...4 P0L.3...0 P0H.3...0 P1L.3...0 P1H.3...0 P2.3...0 P3.3...0 P4.3...0 P6.3...0 P7.3...0 P8.3...0
74/186
ST10F280
Dedicated Pins Output Control Programmable pad drivers also are supported for the dedicated pins ALE, RD and WR. For these pads, a special POCON20 register is provided. POCON20 (F0AAh / 5h)
15 14 13 12 11 10 9 -
ESFR
8 7 6 5 4 3 PN1DC RW PN1EC RW
Reset Value: 0000h
2 1 0 PN0DC RW PN0EC RW
Bit PN0EC 00 01 10 11 PN0DC 00 01 10 11 PN1EC 00 01 10 11 PN1DC 00 01 10 11
Function RD, WR Edge Characteristic (rise/fall time) Fast edge mode, rise/fall times depend on the driver's dimensioning. Slow edge mode, rise/fall times ~60 ns Reserved Reserved RD, WR Driver Characteristic (output current) High Current mode:Driver always operates with maximum strength. Dynamic Current mode:Driver strength is reduced after the target level has been reached. Low Current mode:Driver always operates with reduced strength. Reserved ALE Edge Characteristic (rise/fall time) Fast edge mode, rise/fall times depend on the driver's dimensioning. Slow edge mode, rise/fall times ~60 ns Reserved Reserved ALE Driver Characteristic (output current) High Current mode:Driver always operates with maximum strength. Dynamic Current mode:Driver strength is reduced after the target level has been reached. Low Current mode:Driver always operates with reduced strength. Reserved
12.1.4 - Alternate Port Functions Each port line has one associated programmable alternate input or output function. PORT0 and PORT1 may be used as the address and data lines when accessing external memory. Port 4 outputs the additional segment address bits A23/A19/A18/A16 in systems where more than 64 KBytes of memory are to be accessed directly. Port 6 provides the optional chip select outputs and the bus arbitration lines. Port 2, Port 7 and Port 8 are associated with the capture inputs or compare outputs of the CAPCOM units and/or with the outputs of the PWM module. Port 2 is also used for fast external interrupt inputs and for timer 7 input. Port 3 includes alternate input/output functions of timers, serial interfaces, the optional bus control signal BHE/WRH and the system clock output (CLKOUT). Port 5 is used for the analog input channels to the A/D converter or timer control signals.
If an alternate output function of a pin is to be used, the direction of this pin must be programmed for output (DPx.y=`1'), except for some signals that are used directly after reset and are configured automatically. Otherwise the pin remains in the high-impedance state and is not effected by the alternate output function. The respective port latch should hold a `1', because its output is ANDed with the alternate output data (except for PWM output signals). If an alternate input function of a pin is used, the direction of the pin must be programmed for input (DPx.y=`0') if an external device is driving the pin. The input direction is the default after reset. If no external device is connected to the pin, however, one can also set the direction for this pin to output. In this case, the pin reflects the state of the port output latch. Thus, the alternate input function reads the value stored in the port output latch. This can be used for testing purposes to allow a software trigger of an alternate input function by writing to the port output latch.
75/186
ST10F280
On most of the port lines, the user software is responsible for setting the proper direction when using an alternate input or output function of a pin. This is done by setting or clearing the direction control bit DPx.y of the pin before enabling the alternate function. There are port lines, however, where the direction of the port line is switched automatically. For instance, in the multiplexed external bus modes of PORT0, the direction must be switched several times for an instruction fetch in order to output the addresses and to input the data. Obviously, this cannot be done through instructions. In these cases, the direction of the port line is switched automatically by hardware if the alternate function of such a pin is enabled. To determine the appropriate level of the port output latches check how the alternate data output is combined with the respective port latch output. There is one basic structure for all port lines with only an alternate input function. Port lines with only an alternate output function, however, have different structures due to the way the direction of the pin is switched and depending on whether the pin is accessible by the user software or not in the alternate function mode. All port lines that are not used for these alternate functions may be used as general purpose I/O lines. When using port pins for general purpose output, the initial output value should be written to the port latch prior to enabling the output drivers, in order to avoid undesired transitions on the output pins. This applies to single pins as well as to pin groups (see examples below). SINGLE_BIT: BSET BSET BIT_GROUP: BFLDH BFLDH P4.7 DP4.7 P4, #24H, #24H DP4, #24H, #24H ; ; ; ; Initial output level Switch on the output Initial output level Switch on the output is "high" driver is "high" drivers
Note: When using several BSET pairs to control more pins of one port, these pairs must be separated by instructions, which do not reference the respective port (see "Particular Pipeline Effects" in Chapter 6 - Central Processing Unit (CPU)). 12.2 - PORT0 The two 8-bit ports P0H and P0L represent the higher and lower part of PORT0, respectively. Both halves of PORT0 can be written (e.g. via a PEC transfer) without effecting the other half. If this port is used for general purpose I/O, the direction of each line can be configured via the corresponding direction registers DP0H and DP0L. P0L (FF00h / 80h)
15 14 13 12 11 10 9 8 -
SFR
7 6 5 4 3
Reset Value: - - 00h
2 1 0
P0L.7 P0L.6 P0L.5 P0L.4 P0L.3 P0L.2 P0L.1 P0L.0 RW RW RW RW RW RW RW RW
P0H (FF02h / 81h)
15 14 13 12 11 10 9 8 -
SFR
7 6 5 4 3
Reset Value: - - 00h
2 1 0
P0H.7 P0H.6 P0H.5 P0H.4 P0H.3 P0H.2 P0H.1 P0H.0 RW RW RW RW RW RW RW RW
Bit P0X.y Port data register P0H or P0L bit y
Function
DP0L (F100h / 80h)
15 14 13 12 11 10 9 8 7
ESFR
6 5 4 3
Reset Value: - - 00h
2 1 0
DP0L.7 DP0L.6 DP0L.5 DP0L.4 DP0L.3 DP0L.2 DP0L.1 DP0L.0 RW RW RW RW RW RW RW RW
76/186
ST10F280
DP0H (F102h / 81h)
15 14 13 12 11 10 9 8 7
ESFR
6 5 4 3
Reset Value: - - 00h
2 1 0
DP0H.7 DP0H.6 DP0H.5 DP0H.4 DP0H.3 DP0H.2 DP0H.1 DP0H.0 RW RW RW RW RW RW RW RW
Bit DP0X.y
Function Port direction register DP0H or DP0L bit y DP0X.y = 0: Port line P0X.y is an input (high-impedance) DP0X.y = 1: Port line P0X.y is an output
12.2.1 - Alternate Functions of PORT0 When an external bus is enabled, PORT0 is used as data bus or address/data bus. Note that an external 8-bit de-multiplexed bus only uses P0L, while P0H is free for I/O (provided that no other bus mode is enabled). PORT0 is also used to select the system start-up configuration. During reset, PORT0 is configured to input, and each line is held high through an internal pull-up device. Each line can now be individually pulled to a low level (see DC-level specifications) through an external pull-down device. A default configuration is selected when the respective PORT0 lines are at a high level. Through pulling individual lines to a low level, this default can be changed according to the needs of the applications. The internal pull-up devices are designed such that an external pull-down resistors can be used to apply a correct low level. These external pull-down resistors can remain connected to the PORT0 pins also during normal operation, however, care has to be taken such that they do not disturb the normal function of PORT0 (this might be the case, for example, if the external resistor is too strong). With Figure 29 : PORT0 I/O and Alternate Functions
Alternate Function
P0H.7 P0H.6 P0H.5 P0H.4 P0H.3 P0H.2 P0H.1 P0H.0 P0L.7 P0L.6 P0L.5 P0L.4 P0L.3 P0L.2 P0L.1 P0L.0
the end of reset, the selected bus configuration will be written to the BUSCON0 register. The configuration of the high byte of PORT0, will be copied into the special register RP0H. This read-only register holds the selection for the number of chip selects and segment addresses. Software can read this register in order to react according to the selected configuration, if required. When the reset is terminated, the internal pull-up devices are switched off, and PORT0 will be switched to the appropriate operating mode. During external accesses in multiplexed bus modes PORT0 first outputs the 16-bit intra-segment address as an alternate output function. PORT0 is then switched to high-impedance input mode to read the incoming instruction or data. In 8-bit data bus mode, two memory cycles are required for word accesses, the first for the low byte and the second for the high byte of the word. During write cycles PORT0 outputs the data byte or word after outputting the address. During external accesses in de-multiplexed bus modes PORT0 reads the incoming instruction or data word or outputs the data byte or word.
a)
b)
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 16-bit Demultiplexed Bus
c)
A15 A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 8-bit Multiplexed Bus
d)
AD15 AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 16-bit Multiplexed Bus
P0H
PORT0
P0L
D7 D6 D5 D4 D3 D2 D1 D0 8-bit Demultiplexed Bus
General Purpose Input/Output
77/186
ST10F280
When an external bus mode is enabled, the direction of the port pin and the loading of data into the port output latch are controlled by the bus controller hardware. The input of the port output latch is disconnected from the internal bus and is switched to the line labeled "Alternate Data Output" via a multiplexer. The alternate data can be the 16-bit intra-segment address or the 8/16-bit data information. The Figure 30 : Block Diagram of a PORT0 Pin
Write DP0H.y / DP0L.y
incoming data on PORT0 is read on the line "Alternate Data Input". While an external bus mode is enabled, the user software should not write to the port output latch, otherwise unpredictable results may occur. When the external bus modes are disabled, the contents of the direction register last written by the user becomes active. The Figure 30 shows the structure of a PORT0 pin.
Alternate Direction
1 MUX
Direction Latch Read DP0H.y / DP0L.y Alternate Function Enable Alternate Data Output Internal Bus Write P0H.y / P0L.y
0
1 Port Output Latch Port Data Output MUX 0 Output Buffer P0H.y P0L.y
Read P0H.y / P0L.y CPU Clock 1 MUX 0 Input Latch y = 7...0
78/186
ST10F280
12.3 - PORT1 The two 8-bit ports P1H and P1L represent the higher and lower part of PORT1, respectively. Both halves of PORT1 can be written (e.g. via a PEC transfer) without effecting the other half. If this port is used for general purpose I/O, the direction of each line can be configured via the corresponding direction registers DP1H and DP1L. P1L (FF04h / 82h)
15 14 13 12 11 10 9 8 -
SFR
7 6 5 4 3
Reset Value: - - 00h
2 1 0
P1L.7 P1L.6 P1L.5 P1L.4 P1L.3 P1L.2 P1L.1 P1L.0 RW RW RW RW RW RW RW RW
P1H (FF06h / 83h)
15 14 13 12 11 10 9 8 -
SFR
7 6 5 4 3
Reset Value: - - 00h
2 1 0
P1H.7 P1H.6 P1H.5 P1H.4 P1L.3 P1H.2 P1H.1 P1H.0 RW RW RW RW RW RW RW RW
Bit P1X.y Port data register P1H or P1L bit y
Function
DP1L (F104h / 82h)
15 14 13 12 11 10 9 8 -
ESFR
7 6 5 4 3
Reset Value: - - 00h
2 1 0
DP1L.7 DP1L.6 DP1L.5 DP1L.4 DP1L.3 DP1L.2 DP1L.1 DP1L.0 RW RW RW RW RW RW RW RW
DP1H (F106h / 83h)
15 14 13 12 11 10 9 8 -
ESFR
7 6 5 4 3
Reset Value: - - 00h
2 1 0
DP1H.7 DP1H.6DP1H.5DP1H.4DP1H.3DP1H.2 DP1H.1 DP1H.0 RW RW RW RW RW RW RW RW
Bit DP1X.y
Function Port direction register DP1H or DP1L bit y DP1X.y = 0: Port line P1X.y is an input (high-impedance) DP1X.y = 1: Port line P1X.y is an output
12.3.1 - Alternate Functions of PORT1 When a de-multiplexed external bus is enabled, PORT1 is used as address bus. Note that de-multiplexed bus modes use PORT1 as a 16-bit port. Otherwise all 16 port lines can be used for general purpose I/O. The upper four pins of PORT1 (P1H.7...P1H.4) also serve as capture input lines for the CAPCOM2 unit (CC27IO...CC24IO). As all other capture inputs, the capture input function of pins P1H.7...P1H.4 can also be used as external interrupt inputs (200 ns sample rate at 40MHz CPU clock).
During external accesses in de-multiplexed bus modes PORT1 outputs the 16-bit intra-segment address as an alternate output function. During external accesses in multiplexed bus modes, when no BUSCON register selects a de-multiplexed bus mode, PORT1 is not used and is available for general purpose I/O (see Figure 31). When an external bus mode is enabled, the direction of the port pin and the loading of data into the port output latch are controlled by the bus controller hardware. The input of the port output latch is disconnected from the internal bus and is switched to the line labeled "Alternate Data Output" via a multiplexer. The alternate data is the 16-bit intra-segment address.
79/186
ST10F280
While an external bus mode is enabled, the user software should not write to the port output latch, otherwise unpredictable results may occur. When the external bus modes are disabled, the contents of the direction register last written by the user becomes active. Figure 31 : PORT1 I/O and Alternate Functions
Alternate Function
P1H.7 P1H.6 P1H.5 P1H.4 P1H.3 P1H.2 P1H.1 P1H.0 P1L.7 P1L.6 P1L.5 P1L.4 P1L.3 P1L.2 P1L.1 P1L.0
a)
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 8/16-bit Demultiplexed Bus
b)
CC27I CC26I CC25I CC24I
P1H
PORT1
P1L
General Purpose Input/Output
CAPCOM2 Capture Inputs
The figure below shows the structure of a PORT1 pin. Figure 32 : Block Diagram of a PORT1 Pin
Write DP1H.y / DP1L.y "1" Direction Latch Read DP1H.y / DP1L.y Alternate Function Enable Alternate Data Output Internal Bus Write P1H.y / P1L.y 1 Port Output Latch Port Data Output MUX 0 Output Buffer P1H.y P1L.y 1 MUX 0
Read P1H.y / P1L.y CPU Clock 1 MUX 0 Input Latch y = 7...0
12.4 - Port 2 If this 16-bit port is used for general purpose I/O, the direction of each line can be configured via the corresponding direction register DP2. Each port line can be switched into push/pull or open drain mode via the open drain control register ODP2.
80/186
ST10F280
P2 (FFC0h / E0h)
15 14 13 12 11 10 9 8 P2.8 RW P2.15 P2.14 P2.13 P2.12 P2.11 P2.10 P2.9 RW RW RW RW RW RW RW
SFR
7 P2.7 RW 6 P2.6 RW 5 P2.5 RW 4 P2.4 RW 3 P2.3 RW
Reset Value: 0000h
2 P2.2 RW 1 P2.1 RW 0 P2.0 RW
Bit P2.y Port data register P2 bit y
Function
DP2 (FFC2h / E1h)
15 DP2. 15 RW 14 DP2. 14 RW 13 DP2. 13 RW 12 DP2. 12 RW 11 DP2. 11 RW 10 9 8
SFR
7 6 5 4 3
Reset Value: 0000h
2 1 0
DP2. DP2.9 DP2.8 DP2.7 DP2.6 DP2.5 DP2.4 DP2.3 DP2.2 DP2.1 DP2.0 10 RW RW RW RW RW RW RW RW RW RW RW
Bit DP2.y Port direction register DP2 bit y
Function
DP2.y = 0: Port line P2.y is an input (high-impedance) DP2.y = 1: Port line P2.y is an output
ODP2 (F1C2h / E1h)
15 14 13 12 11 10 9
ESFR
8 7 6 5 4 3
Reset Value: 0000h
2 1 0
ODP2 ODP2 ODP2 ODP2 ODP2 ODP2 ODP2 ODP2 ODP2 ODP2 ODP2 ODP2 ODP2 ODP2 ODP2 ODP2 .15 .14 .13 .12 .11 .10 .9 .8 .7 .6 .5 .4 .3 .2 .1 .0 RW RW RW RW RW RW RW RW RW RW RW RW RW RW RW RW
Bit ODP2.y Port 2 Open Drain control register bit y
Function
ODP2.y = 0: Port line P2.y output driver in push/pull mode ODP2.y = 1: Port line P2.y output driver in open drain mode
12.4.1 - Alternate Functions of Port 2 All Port 2 lines (P2.15...P2.0) serve as capture inputs or compare outputs (CC15IO...CC0IO) for the CAPCOM1 unit. When a Port 2 line is used as a capture input, the state of the input latch, which represents the state of the port pin, is directed to the CAPCOM unit via the line "Alternate Pin Data Input". If an external capture trigger signal is used, the direction of the respective pin must be set to input. If the direction is set to output, the state of the port output latch will be read since the pin represents the state of the output latch. This can be used to trigger a capture event through software by setting or clearing the port latch. Note that in the output configuration, no external device may drive the pin, otherwise conflicts would occur.
When a Port 2 line is used as a compare output (compare modes 1 and 3), the compare event (or the timer overflow in compare mode 3) directly effects the port output latch. In compare mode 1, when a valid compare match occurs, the state of the port output latch is read by the CAPCOM control hardware via the line "Alternate Latch Data Input", inverted, and written back to the latch via the line "Alternate Data Output". The port output latch is clocked by the signal "Compare Trigger" which is generated by the CAPCOM unit. In compare mode 3, when a match occurs, the value '1' is written to the port output latch via the line "Alternate Data Output". When an overflow of the corresponding timer occurs, a '0' is written to the port output latch. In both cases, the output latch is clocked by the signal "Compare Trigger".
81/186
ST10F280
The direction of the pin should be set to output by the user, otherwise the pin will be in the high-impedance state and will not reflect the state of the output latch. As can be seen from the port structure below, the user software always has free access to the port pin even when it is used as a compare output. This is useful for setting up the initial level of the pin when using compare mode 1 or the double-register mode. In these modes, unlike in compare mode 3, the pin is not set to a specific value when a compare match occurs, but is toggled instead. When the user wants to write to the port pin at the same time a compare trigger tries to clock the output latch, the write operation of the user software has priority. Each time a CPU write access to the port output latch occurs, the input multiplexer of
Port 2 Pin P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 P2.8 P2.9 P2.10 P2.11 P2.12 P2.13 P2.14 P2.15 Alternate Function a) CC0IO CC1IO CC2IO CC3IO CC4IO CC5IO CC6IO CC7IO CC8IO CC9IO CC10IO CC11IO CC12IO CC13IO CC14IO CC15IO EX0IN EX1IN EX2IN EX3IN EX4IN EX5IN EX6IN EX7IN
the port output latch is switched to the line connected to the internal bus. The port output latch will receive the value from the internal bus and the hardware triggered change will be lost. As all other capture inputs, the capture input function of pins P2.15...P2.0 can also be used as external interrupt inputs (200 ns sample rate at 40MHz CPU clock). The upper eight Port 2 lines (P2.15...P2.8) also can serve as Fast External Interrupt inputs from EX0IN to EX7IN. (Fast external interrupt sampling rate is 25ns at 40MHz CPU clock). P2.15 in addition serves as input for CAPCOM2 timer T7 (T7IN). The table below summarizes the alternate functions of Port 2.
Alternate Function c) T7IN Timer T7 Ext. Count Input
Alternate Function b)
Fast External Interrupt Fast External Interrupt Fast External Interrupt Fast External Interrupt Fast External Interrupt Fast External Interrupt Fast External Interrupt Fast External Interrupt
0 Input 1 Input 2 Input 3 Input 4 Input 5 Input 6 Input 7 Input
Figure 33 : Port 2 I/O and Alternate Functions
Alternate Function
P2.15 P2.14 P2.13 P2.12 P2.11 P2.10 P2.9 P2.8 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
a)
CC15IO CC14IO CC13IO CC12IO CC11IO CC10IO CC9IO CC8IO CC7IO CC6IO CC5IO CC4IO CC3IO CC2IO CC1IO CC0IO CAPCOM1 Capture Input / Compare Output
b)
EX7IN EX6IN EX5IN EX4IN EX3IN EX2IN EX1IN EX0IN
c)
T7IN
Port 2
General Purpose Input / Output
Fast External Interrupt Input
CAPCOM2 Timer T7 Input
82/186
ST10F280
The pins of Port 2 combine internal bus data with alternate data output before the port latch input. Figure 34 : Block Diagram of a Port 2 Pin
Write ODP2.y
Open Drain Latch Read ODP2.y
Write DP2.y
Direction Latch
Internal Bus
Read DP2.y
1 Alternate Data Output Write Port P2.y Compare Trigger Read P2.y CPU Clock 1 MUX 0 Alternate Data Input Fast External Interrupt Input Input Latch MUX 0 Output Latch Output Buffer
P2.y CCyIO EXxIN
1
x = 7...0 y = 15...0
83/186
ST10F280
12.5 - Port 3 If this 15-bit port is used for general purpose I/O, the direction of each line can be configured by the corresponding direction register DP3. Most port lines can be switched into push/pull or open drain mode by the open drain control register ODP3 (pins P3.15, P3.14 and P3.12 do not support open drain mode). Due to pin limitations register bit P3.14 is not connected to an output pin. P3 (FFC4h / E2h)
15 P3.15 RW Bit P3.y Port data register P3 bit y 14 13 12 11 10 9 8 P3.8 RW P3.13 P3.12 P3.11 P3.10 P3.9 RW RW RW RW RW
SFR
7 P3.7 RW 6 P3.6 RW 5 P3.5 RW 4 P3.4 RW 3 P3.3 RW
Reset Value: 0000h
2 P3.2 RW 1 P3.1 RW 0 P3.0 RW
Function
DP3 (FFC6h / E3h)
15 DP3 .15 RW 14 RW Bit DP3.y Port direction register DP3 bit y 13 DP3 .13 RW 12 DP3 .12 RW 11 DP3 .11 RW 10 9 8
SFR
7 6 5 4 3
Reset Value: 0000h
2 1 0
DP3 DP3.9 DP3.8 DP3.7 DP3.6 DP3.5 DP3.4 DP3.3 DP3.2 DP3.1 DP3.0 .10 RW RW RW RW RW RW RW RW RW RW RW
Function
DP3.y = 0: Port line P3.y is an input (high-impedance) DP3.y = 1: Port line P3.y is an output
ODP3 (F1C6h / E3h)
15 14 13 ODP3 .13 RW Bit ODP3.y 12 11 10 9 8
SFR
7 6 5 4 3
Reset Value: 0000h
2 1 0
ODP3 ODP3 ODP3 ODP3 ODP3 ODP3 ODP3 ODP3 ODP3 ODP3 ODP3 ODP3 .11 .10 .9 .8 .7 .6 .5 .4 .3 .2 .1 .0 RW RW RW RW RW RW RW RW RW RW RW RW
Function Port 3 Open Drain control register bit y ODP3.y = 0: Port line P3.y output driver in push-pull mode ODP3.y = 1: Port line P3.y output driver in open drain mode
84/186
ST10F280
12.5.1 - Alternate Functions of Port 3 The pins of Port 3 serve for various functions which include external timer control lines, the two serial interfaces and the control lines BHE/WRH and CLKOUT. Table 16 : Port 3 Alternative Functions
Port 3 Pin P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 P3.8 P3.9 P3.10 P3.11 P3.12 P3.13 P3.14 P3.15 T0IN T6OUT CAPIN T3OUT T3EUD T4IN T3IN T2IN MRST MTSR TxD0 RxD0 BHE/WRH SCLK --CLKOUT Alternate Function CAPCOM1 Timer 0 Count Input Timer 6 Toggle Output GPT2 Capture Input Timer 3 Toggle Output Timer 3 External Up/Down Input Timer 4 Count Input Timer 3 Count Input Timer 2 Count Input SSC Master Receive / Slave Transmit SSC Master Transmit / Slave Receive ASC0 Transmit Data Output ASC0 Receive Data Input / (Output in synchronous mode) Byte High Enable / Write High Output SSC Shift Clock Input/Output No pin assigned! System Clock Output
Figure 35 : Port 3 I/O and Alternate Functions
Alternate Function No Pin
P3.15 P3.13 P3.12 P3.11 P3.10 P3.9 P3.8 P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0
a)
CLKOUT SCLK BHE RxD0 TxD0 MTSR MRST T2IN T3IN T4IN T3EUD T3OUT CAPIN T6OUT T0IN
b)
WRH
Port 3
General Purpose Input/Output
The port structure of the Port 3 pins depends on their alternate function (see Figure 36). When the on-chip peripheral associated with a Port 3 pin is configured to use the alternate input function, it reads the input latch, which represents the state of the pin, via the line labeled "Alternate Data Input". Port 3 pins with alternate input functions are: T0IN, T2IN, T3IN, T4IN, T3EUD and CAPIN. When the on-chip peripheral associated with a Port 3 pin is configured to use the alternate output function, its "Alternate Data Output" line is ANDed
with the port output latch line. When using these alternate functions, the user must set the direction of the port line to output (DP3.y=1) and must set the port output latch (P3.y=1). Otherwise the pin is in its high-impedance state (when configured as input) or the pin is stuck at '0' (when the port output latch is cleared). When the alternate output functions are not used, the "Alternate Data Output" line is in its inactive state, which is a high level ('1'). Port 3 pins with alternate output functions are: T6OUT, T3OUT, TxD0 and CLKOUT.
85/186
ST10F280
When the on-chip peripheral associated with a Port 3 pin is configured to use both the alternate input and output function, the descriptions above apply to the respective current operating mode. The direction must be set accordingly. Port 3 pins with alternate input/output functions are: MTSR, MRST, RxD0 and SCLK. Note: Enabling the CLKOUT function automatically enables the P3.15 output driver. Setting bit DP3.15='1' is not required. Figure 36 : Block Diagram of Port 3 Pin with Alternate Input or Alternate Output Function
Write ODP3.y
Open Drain Latch Read ODP3.y
Internal Bus
Write DP3.y
Direction Latch
Read DP3.y
Write P3.y
Alternate Data Output
Port Output Latch Read P3.y
Port Data Output
&
Output Buffer
P3.y
CPU Clock 1 MUX 0 Alternate Data Input Input Latch y = 13, 11...0
86/186
ST10F280
Pin P3.12 (BHE/WRH) is another pin with an alternate output function, however, its structure is slightly different (see figure Figure 37). After reset the BHE or WRH function must be used depending on the system start-up configuration. In either of these cases, there is no possibility to program any port latches before. Thus, the appropriate alternate function is selected automatically. If BHE/WRH is not used in the system, this pin can be used for general purpose I/O by disabling the alternate function (BYTDIS = `1' / WRCFG='0'). Figure 37 : Block Diagram of Pins P3.15 (CLKOUT) and P3.12 (BHE/WRH)
Write DP3.x "1" Direction Latch Read DP3.x Alternate Function Enable 1 MUX 0
Internal Bus
Write P3.x
Alternate Data Output
1 MUX 0 Output Buffer P3.12/BHE P3.15/CLKOUT
Port Output Latch
Read P3.x CPU Clock 1 MUX 0 Input Latch x = 15, 12
Note: Enabling the BHE or WRH function automatically enables the P3.12 output driver. Setting bit DP3.12='1' is not required. During bus hold, pin P3.12 is switched back to its standard function and is then controlled by DP3.12 and P3.12. Keep DP3.12 = '0' in this case to ensure floating in hold mode. 12.6 - Port 4 If this 8-bit port is used for general purpose I/O, the direction of each line can be configured via the corresponding direction register DP4. P4 (FFC8h / E4h)
15 14 13 12 11 10 9 8 -
SFR
7 P4.7 RW 6 P4.6 RW 5 P4.5 RW 4 P4.4 RW 3 P4.3 RW
Reset Value: - - 00h
2 P4.2 RW 1 P4.1 RW 0 P4.0 RW
Bit P4.y Port data register P4 bit y
Function
87/186
ST10F280
DP4 (FFCAh / E5h)
15 14 13 12 11 10 9 8 -
SFR
7 6 5 4 3
Reset Value: - - 00h
2 1 0
DP4.7 DP4.6 DP4.5 DP4.4 DP4.3 DP4.2 DP4.1 DP4.0 RW RW RW RW RW RW RW RW
Bit DP4.y Port direction register DP4 bit y
Function
DP4.y = 0: Port line P4.y is an input (high-impedance) DP4.y = 1: Port line P4.y is an output
For CAN configuration support (see Chapter 15 - CAN Modules), Port 4 has a new open drain function, controlled with the new ODP4 register: ODP4 (F1CAh / E5h)
15 14 13 12 11 10 9 8 -
SFR
7 6 5 4 3 ODP4. ODP4. 7 6 RW RW
Reset Value: - - 00h
2 1 0 -
Bit ODP4.y Port 4 Open drain control register bit y
Function
ODP4.y = 0: Port line P4.y output driver in push/pull mode ODP4.y = 1: Port line P4.y output driver in open drain mode if P4.y is not a segment address line output
Note: Only bits 6 and 7 are implemented, all other bits will be read as "0". 12.6.1 - Alternate Functions of Port 4 During external bus cycles that use segmentation (i.e. an address space above 64K Bytes) a number of Port 4 pins may output the segment address lines. The number of pins used for segment address output determines the directly accessible external address space. The other pins of Port 4 may be used for general purpose I/O. If segment address lines are selected, the alternate function of Port 4 may be necessary to access e.g. external memory directly
Port 4 Pin P4.0 P4.1 P4.2 P4.3 P4.4 P4.5 P4.6 P4.7 Std. Function SALSEL=01 64 KB GPIO GPIO GPIO GPIO GPIO/CAN2_RxD GPIO/CAN1_RxD GPIO/CAN1_TxD GPIO/CAN2_TxD
after reset. For this reason Port 4 will be switched to this alternate function automatically. The number of segment address lines is selected via PORT0 during reset. The selected value can be read from bitfield SALSEL in register RP0H (read only) to check the configuration during run time. Devices with CAN interfaces use 2 pins of Port 4 to interface each CAN Module to an external CAN transceiver. In this case the number of possible segment address lines is reduced. The table below summarizes the alternate functions of Port 4 depending on the number of selected segment address lines (coded via bitfield SALSEL)..
Altern. Function SALSEL=00 1MB Seg. Address A16 Seg. Address A17 Seg. Address A18 Seg. Address A19 GPIO/CAN2_RxD GPIO/CAN1_RxD GPIO/CAN1_TxD GPIO/CAN2_TxD Altern. Function SALSEL=10 16MB Seg. Address A16 Seg. Address A17 Seg. Address A18 Seg. Address A19 Seg. Address A20 Seg. Address A21 Seg. Address A22 Seg. Address A23
Altern. Function SALSEL=11 256KB Seg. Address A16 Seg. Address A17 GPIO GPIO GPIO/CAN2_RxD GPIO/CAN1_RxD GPIO/CAN1_TxD GPIO/CAN2_TxD
88/186
ST10F280
Figure 38 : Port 4 I/O and Alternate Functions
Alternate Function a) b)
Port 4
P4.7 P4.6 P4.5 P4.4 P4.3 P4.2 P4.1 P4.0
A23 A22 A21 A20 A19 A18 A17 A16 Segment Address Lines
CAN2_TxD CAN1_TxD CAN1_RxD CAN2_RxD
p4.3 P4.2 P4.1 P4.0
Cans I/O and General Purpose Input / Output
General Purpose Input / Output
Figure 39 : Block Diagram of a Port 4 Pin
Write DP4.y "1" Direction Latch Read DP4.y Alternate Function Enable 1 MUX 0
Internal Bus
Write P4.y
Alternate Data Output
1 MUX 0 P4.y Output Buffer
Port Output Latch
Read P4.y CPU Clock 1 MUX 0 Input Latch y = 7...0
89/186
ST10F280
Figure 40 : Block Diagram of P4.4 and P4.5 Pins
Write DP4.x "1" Direction Latch Read DP4.x "0" Alternate Function Enable Write P4.x 1 MUX 0 1 MUX 0 "0" 1 MUX 0
Internal Bus
Alternate Data Output
1 MUX 0 Output Buffer P4.x
Port Output Latch
Read P4.x Clock 1 MUX 0 Input Latch
CANy.RxD
&
XPERCON.a (CANyEN) x = 5, 4 y = 1, 2 (CAN Channel) z = 2, 1 a = 0, 1 b = 1, 0
XPERCON.b (CANzEN)
1
90/186
ST10F280
Figure 41 : Block Diagram of P4.6 and P4.7 Pins
Write ODP4.x
Open Drain Latch Read ODP4.x "0"
1 MUX 0
Write DP4.x "1" Direction Latch Read DP4.x "0" Alternate Function Enable Write P4.x Alternate Data Output 1 MUX 0 1 MUX Internal Bus 0 0 "1" 1 MUX
1 MUX 0
1 MUX 0 Output Buffer Clock P4.x
Port Output Latch Read P4.x 1 MUX 0 CANy.TxD Data output XPERCON.a (CANyEN)
Input Latch
XPERCON.b (CANzEN)
1
x = 6, 7 y = 1, 2 (CAN Channel) z = 2, 1 a = 0, 1 b = 1, 0
91/186
ST10F280
12.7 - Port 5 This 16-bit input port can only read data. There is no output latch and no direction register. Data written to P5 will be lost. P5 (FFA2h / D1h)
15 14 13 12 11 10 9 8 P5.8 R P5.15 P5.14 P5.13 P5.12 P5.11 P5.10 P5.9 R R Bit P5.y Port data register P5 bit y (Read only) R R R R R
SFR
7 P5.7 R 6 P5.6 R Function 5 P5.5 R 4 P5.4 R 3
Reset Value: XXXXh
2 P5.2 R 1 P5.1 R 0 P5.0 R P5.3 R
Alternate Functions of Port 5 Each line of Port 5 is also connected to one of the multiplexer of the Analog/Digital Converter. All port lines (P5.15...P5.0) can accept analog signals (AN15...AN0) that can be converted by the ADC. No special programming is required for pins that shall be used as analog inputs. Some pins of Port 5 also serve as external timer control lines for GPT1 and GPT2. The table below summarizes the alternate functions of Port 5. Table 17 : Port 5 Alternate Functions
Port 5 Pin P5.0 P5.1 P5.2 P5.3 P5.4 P5.5 P5.6 P5.7 P5.8 P5.9 P5.10 P5.11 P5.12 P5.13 P5.14 P5.15 Analog Analog Analog Analog Analog Analog Analog Analog Analog Analog Analog Analog Analog Analog Analog Analog Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Alternate Function a) AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 AN8 AN9 AN10 AN11 AN12 AN13 AN14 AN15 T6EUD T5EUD T6IN T5IN T4EUD T2EUD Alternate Function b)
Timer Timer Timer Timer Timer Timer
6 ext. Up/Down Input 5 ext. Up/Down Input 6 Count Input 5 Count Input 4 ext. Up/Down Input 2 ext. Up/Down Input
Figure 42 : Port 5 I/O and Alternate Functions
Alternate Function
P5.15 P5.14 P5.13 P5.12 P5.11 P5.10 P5.9 P5.8 P5.7 P5.6 P5.5 P5.4 P5.3 P5.2 P5.1 P5.0
a)
AN15 AN14 AN13 AN12 AN11 AN10 AN9 AN8 AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0 A/D Converter Inputs
b)
T2EUD T4EUD T5IN T6IN T5EUD T6EUD
Port 5
General Purpose Inputs
Timer Inputs
92/186
ST10F280
Port 5 pins have a special port structure (see Figure 43), first because it is an input only port, and second because the analog input channels are directly connected to the pins rather than to the input latches. Figure 43 : Block Diagram of a Port 5 Pin
Channel Select to Sample + Hold Circuit Read Port P5.y CPU Clock Analog Switch P5.y/ANy
Internal Bus
Read Buffer
Input Latch y = 15...0
12.7.1 - Port 5 Schmitt Trigger Analog Inputs A Schmitt trigger protection can be activated on each pin of Port 5 by setting the dedicated bit of register P5DIDIS. P5DIDIS (FFA4h / D2h)
15 14 13 12 11 10 9 8
SFR
7 6 5 4 3
Reset Value: 0000h
2 1 0
P5DI P5DI P5DI P5DI P5DI P5DI P5DI P5DI P5DI P5DI P5DI P5DI P5DI P5DI P5DI P5DI DIS.15 DIS.14 DIS.13 DIS.12 DIS.11 DIS.10 DIS.9 DIS.8 DIS.7 DIS.6 DIS.5 DIS.4 DIS.3 DIS.2 DIS.1 DIS.0 RW RW Bit P5DIDIS.y Port 5 Digital Disablel register bit y P5DIDIS.y = 0: Port line P5.y digital input is enabled (Schmitt trigger enabled) P5DIDIS.y = 1: Port line P5.y digital input is disabled (Schmitt trigger disabled, necessary for input leakage current reduction) RW RW RW RW RW RW RW RW RW RW RW RW RW RW
Function
12.8 - Port 6 If this 8-bit port is used for general purpose I/O, the direction of each line can be configured via the corresponding direction register DP6. Each port line can be switched into push/pull or open drain mode via the open drain control register ODP6. P6 (FFCCh / E6h)
15 14 13 12 11 10 9 8 -
SFR
7 P6.7 RW 6 P6.6 RW 5 P6.5 RW 4 P6.4 RW 3 P6.3 RW
Reset Value: - - 00h
2 P6.2 RW 1 P6.1 RW 0 P6.0 RW
Bit P6.y Port data register P6 bit y
Function
DP6 (FFCEh / E7h)
15 14 13 12 11 10 9 8 -
SFR
7 RW 6 RW 5 RW 4 RW 3 RW
Reset Value: - - 00h
2 RW 1 RW 0 RW 93/186
DP6.7 DP6.6 DP6.5 DP6.4 DP6.3 DP6.2 DP6.1 DP6.0
ST10F280
Bit DP6.y Port direction register DP6 bit y
Function DP6.y = 0: Port line P6.y is an input (high-impedance) DP6.y = 1: Port line P6.y is an output
ODP6 (F1CEh / E7h)
15 14 13 12 11 10 9 8 -
ESFR
7 RW 6 RW 5 RW 4 RW 3 RW
Reset Value: - - 00h
2 RW 1 RW 0 RW
ODP6.7ODP6.6ODP6.5 ODP6.4 ODP6.3 ODP6.2 ODP6.1 ODP6.0
Bit ODP6.y Port 6 Open Drain control register bit y
Function
ODP6.y = 0: Port line P6.y output driver in push/pull mode ODP6.y = 1: Port line P6.y output driver in open drain mode
12.8.1 - Alternate Functions of Port 6 A programmable number of chip select signals (CS4...CS0) derived from the bus control registers (BUSCON4...BUSCON0) can be output on the 5 pins of Port 6. The number of chip select signals is selected via PORT0 during reset. The selected value can be read from bitfield CSSEL in register RP0H (read only) e.g. in order to check the configuration during run time. The table below summarizes the alternate functions of Port 6 depending on the number of selected chip select lines (coded via bitfield CSSEL). Table 18 : Port 6 Alternate Functions
Port 6 Pin P6.0 P6.1 P6.2 P6.3 P6.4 P6.5 P6.6 P6.7 Altern. Function CSSEL = 10 General purpose I/O General purpose I/O General purpose I/O General purpose I/O General purpose I/O Altern. Function CSSEL = 01 Chip select CS0 Chip select CS1 Gen. purpose I/O Gen. purpose I/O Gen. purpose I/O Altern. Function CSSEL = 00 Chip select CS0 Chip select CS1 Chip select CS2 Gen. purpose I/O Gen. purpose I/O Altern. Function CSSEL = 11 Chip Chip Chip Chip Chip select select select select select CS0 CS1 CS2 CS3 CS4
HOLD External hold request input HLDA Hold acknowledge output BREQ Bus request output
Figure 44 : Port 6 I/O and Alternate Functions
Alternate Function a)
Port 6
P6.7 P6.6 P6.5 P6.4 P6.3 P6.2 P6.1 P6.0
BREQ HLDA HOLD CS4 CS3 CS2 CS1 CS0
General Purpose Input/Output
94/186
ST10F280
The chip select lines of Port 6 have an internal weak pull-up device. This device is switched on during reset. This feature is implemented to drive the chip select lines high during reset in order to avoid multiple chip selection. After reset the CS function must be used, if selected so. In this case there is no possibility to program any port latches before. Thus the alternate function (CS) is selected automatically in this case. Note: The open drain output option can only be selected via software earliest during the initialization routine; at least signal CS0 will be in push/pull output driver mode directly after reset. Figure 45 : Block Diagram of Port 6 Pins with an Alternate Output Function
Write ODP6.y
Open Drain Latch Read ODP6.y "0"
1 MUX 0
Write DP6.y "1" Direction Latch Internal Bus 1 MUX 0
Read DP6.y Alternate Function Enable
Write P6.y Alternate * Data Output Port Output Latch Read P6.y CPU Clock 1 MUX 0 Input Latch y = (0...4, 6, 7) 1 MUX 0 Output Buffer P6.y
* P6.5 has only alternate input function.
12.9 - Port 7 If this 8-bit port is used for general purpose I/O, the direction of each line can be configured via the corresponding direction register DP7. Each port line can be switched into push/pull or open drain mode via the open drain control register ODP7.
95/186
ST10F280
P7 (FFD0h / E8h)
15 14 13 12 11 10 9 8 -
SFR
7 P7.7 RW 6 P7.6 RW 5 P7.5 RW 4 P7.4 RW 3 P7.3 RW
Reset Value: - - 00h
2 P7.2 RW 1 P7.1 RW 0 P7.0 RW
P7.y
Port data register P7 bit y SFR
12 11 10 9 8 7 6 5 4 3
DP7 (FFD2h / E9h)
15 14 13 -
Reset Value: - - 00h
2 1 0
DP7.7 DP7.6 DP7.5 DP7.4 DP7.3 DP7.2 DP7.1 DP7.0 RW RW RW RW RW RW RW RW
DP7.y
Port direction register DP7 bit y DP7.y = 0: Port line P7.y is an input (high impedance) DP7.y = 1: Port line P7.y is an output ESFR
11 10 9 8 7 6 5 4 3
ODP7 (F1D2h / E9h)
15 14 13 12 -
Reset Value: - - 00h
2 1 0
ODP7.7 ODP7.6 ODP7.5 ODP7.4 ODP7.3 ODP7.2 ODP7.1 ODP7.0 RW RW RW RW RW RW RW RW
ODP7.y
Port 7 Open Drain control register bit y ODP7.y = 0: Port line P7.y output driver in push-pull mode ODP7.y = 1: Port line P7.y output driver in open drain mode The lower 4 lines of Port 7 (P7.3...P7.0) serve as outputs from the PWM module (POUT3...POUT0). At these pins the value of the respective port output latch is XORed with the value of the PWM output rather than ANDed, as the other pins do. This allows to use the alternate output value either as it is (port latch holds a `0') or invert its level at the pin (port latch holds a `1'). Note that the PWM outputs must be enabled via the respective PENx bits in PWMCON1. The table below summarizes the alternate functions of Port 7.
12.9.1 - Alternate Functions of Port 7 The upper 4 lines of Port 7 (P7.7...P7.4) serve as capture inputs or compare outputs (CC31IO...CC28IO) for the CAPCOM2 unit. The usage of the port lines by the CAPCOM unit, its accessibility via software and the precautions are the same as described for the Port 2 lines. As all other capture inputs, the capture input function of pins P7.7...P7.4 can also be used as external interrupt inputs (200 ns sample rate at 40MHz CPU clock). Table 19 : Port 7 Alternate Functions
Port 7 Pin P7.0 P7.1 P7.2 P7.3 P7.4 P7.5 P7.6 P7.7 POUT0 POUT1 POUT2 POUT3 CC28IO CC29IO CC30IO CC31IO
Alternate Function PWM mode channel 0 output PWM mode channel 1 output PWM mode channel 2 output PWM mode channel 3 output Capture input / compare output channel 28 Capture input / compare output channel 29 Capture input / compare output channel 30 Capture input / compare output channel 31
96/186
ST10F280
Figure 46 : Port 7 I/O and Alternate Functions
Port 7
P7.7 P7.6 P7.5 P7.4 P7.3 P7.2 P7.1 P7.0
CC31IO CC30IO CC29IO CC28IO POUT3 POUT2 POUT1 POUT0 Alternate Function
General Purpose Input/Output
The port structures of Port 7 differ in the way the output latches are connected to the internal bus and to the pin driver (see the two Figure 47). Pins P7.3...P7.0 (POUT3...POUT0) XOR the alternate data output with the port latch output, which allows to use the alternate data directly or inverted at the pin driver. Figure 47 : Block Diagram of Port 7 Pins P7.3...P7.0
Write ODP7.y
Open Drain Latch Read ODP7.y
Write DP7.y
Internal Bus
Direction Latch Read DP7.y
Alternate Data Output Write P7.y Port Data Output =1 EXOR Output Buffer P7.y/POUTy
Port Output Latch Read P7.y
CPU Clock 1 MUX 0 Input Latch y = 0...3
97/186
ST10F280
Figure 48 : Block Diagram of Port 7 Pins P7.7...P7.4
Write ODP7.y
Open Drain Latch Read ODP7.y
Write DP7.y
Direction Latch
Internal Bus
Read DP7.y
1 Alternate Data Output Write Port P7.y Compare Trigger Read P7.y Clock 1 MUX 0 Alternate Latch Data Input Alternate Pin Data Input Input Latch MUX 0 Output Latch Output Buffer P7.y CCzIO
1
y = (4...7) z = (28...31)
98/186
ST10F280
12.10 - Port 8 If this 8-bit port is used for general purpose I/O, the direction of each line can be configured via the corresponding direction register DP8. Each port line can be switched into push/pull or open drain mode via the open drain control register ODP8. P8 (FFD4h / EAh)
15 14 13 12 11 10 9 8 -
SFR
7 P8.7 RW 6 P8.6 RW 5 P8.5 RW 4 P8.4 RW 3 P8.3 RW
Reset Value: - - 00h
2 P8.2 RW 1 P8.1 RW 0 P8.0 RW
P8.y
Port data register P8 bit y
DP8 (FFD6h / EBh)
15 14 13 12 11 10 9 8 -
SFR
7 6 5 4 3
Reset Value: - - 00h
2 1 0
DP8.7 DP8.6 DP8.5 DP8.4 DP8.3 DP8.2 DP8.1 DP8.0 RW RW RW RW RW RW RW RW
DP8.y
Port direction register DP8 bit y DP8.y = 0: Port line P8.y is an input (high impedance) DP8.y = 1: Port line P8.y is an output
ODP8 (F1D6h / EBh)
15 14 13 12 11 10 9 8 7
ESFR
6 5 4 3
Reset Value: - - 00h
2 1 0
ODP8.7 ODP8.6 ODP8.5 ODP8.4 ODP8.3 ODP8.2 ODP8.1 ODP8.0 RW RW RW RW RW RW RW RW
ODP8.y
Port 8 Open Drain control register bit y ODP8.y = 0: Port line P8.y output driver in push-pull mode ODP8.y = 1: Port line P8.y output driver in open drain mode
12.10.1 - Alternate Functions of Port 8 The 8 lines of Port 8 (P8.7...P8.0) serve as capture inputs or compare outputs (CC23IO...CC16IO) for the CAPCOM2 unit. The usage of the port lines by the CAPCOM unit, its accessibility via software and the precautions are the same as described for the Port 2 lines. As all other capture inputs, the capture input function of pins P8.7...P8.0 can also be used as external interrupt inputs (200 ns sample rate at 40MHz CPU clock). The Table 20 summarizes the alternate functions of Port 8. Table 20 : Port 8 Alternate Functions
Port 7 P8.0 P8.1 P8.2 P8.3 P8.4 P8.5 P8.6 P8.7 CC16IO CC17IO CC18IO CC19IO CC20IO CC21IO CC22IO CC23IO Alternate Function Capture input / compare output channel 16 Capture input / compare output channel 17 Capture input / compare output channel 18 Capture input / compare output channel 19 Capture input / compare output channel 20 Capture input / compare output channel 21 Capture input / compare output channel 22 Capture input / compare output channel 23 99/186
ST10F280
Figure 49 : Port 8 I/O and Alternate Functions
Port 8
P8.7 P8.6 P8.5 P8.4 P8.3 P8.2 P8.1 P8.0
CC23IO CC22IO CC21IO CC20IO CC19IO CC18IO CC17IO CC16IO
General Purpose Input / Output
Alternate Function
The port structures of Port 8 differ in the way the output latches are connected to the internal bus and to the pin driver (see the Figure 50). Pins P8.7...P8.0 (CC23IO...CC16IO) combine internal bus data and alternate data output before the port latch input, as do the Port 2 pins. Figure 50 : Block Diagram of Port 8 Pins P8.7...P8.0
Write 0DP8.y
Open Drain Latch Read 0DP8.y
Write DP8.y
Direction Latch Internal Bus Read DP8.y
1 Alternate Data Output Write Port P8.y Compare Trigger Read P8.y CPU Clock 1 MUX 0 Alternate Latch Data Input Alternate Pin Data Input Input Latch MUX 0 Output Latch Output Buffer P8.y CCzIO
1
y = (7...0) z = (16...23)
100/186
ST10F280
12.11 - XPort 9 The XPort9 is enabled by setting XPEN bit 2 of the SYSCON register and XPORT9EN bit 3 of the new XPERCON register. On the XBUS interface, the register are not bit-addressable This 16-bit port is used for general purpose I/O, the direction of each line can be configured via the corresponding direction register XDP9. Each port line can be switched into push/pull or open drain mode via the open drain control register XODP9. All port lines can be individually (bit-wise) programmed. The "bit-addressable" feature is available via specific "Set" and "Clear" registers: XP9SET, XP9CLR, XDP9SET, XDP9CLR, XODP9SET, XODP9CLR. XP9 (C100h)
15 14 13 12 11 10 9 8
XP9.8
Reset Value: 0000h
7
XP9.7
6
XP9.6
5
XP9.5
4
XP9.4
3
XP9.3
2
XP9.2
1
XP9.1
0
XP9.0
XP9.15 XP9.14 XP9.13 XP9.12 XP9.11 XP9.10 XP9.9
RW
RW Bit
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
Function Port data register XP9 bit y
XP9.y
XP9SET (C102h)
15 14 13 12 11 10 9 8 7 6 5 4 3
Reset Value: 0000h
2 1 0
XP9SET XP9SET XP9SET XP9SET XP9SET XP9SET XP9SET XP9SET XP9SET XP9SET XP9SET XP9SET XP9SET XP9SET XP9SET XP9SET .15 .14 .13 .12 .11 .10 .9 .8 .7 .6 .5 .4 .3 .2 .1 .0
W
W Bit
W
W
W
W
W
W
W
W Function
W
W
W
W
W
W
XP9SET.y
Writing a `1' will set the corresponding bit in XP9 register, Writing a `0' has no effect.
XP9CLR (C104h)
15 14 13 12 11 10 9 8 7 6 5 4 3
Reset Value: 0000h
2 1 0
XP9CLRXP9CLRXP9CLRXP9CLRXP9CLRXP9CLRXP9CLRXP9CLRXP9CLRXP9CLRXP9CLRXP9CLRXP9CLRXP9CLRXP9CLRXP9CLR .15 .14 .13 .12 .11 .10 .9 .8 .7 .6 .5 .4 .3 .2 .1 .0
W
W Bit
W
W
W
W
W
W
W
W Function
W
W
W
W
W
W
XP9CLR.y
Writing a `1' will clear the corresponding bit in XP9 register, Writing a `0' has no effect.
XDP9 (C200h)
15
XDP9 .15
Reset Value: 0000h
13 12
XDP9 .12
14
XDP9 .14
11
XDP9 .11
10
XDP9 .10
9
XDP9 .9
8
XDP9 .8
7
XDP9 .7
6
XDP9 .6
5
XDP9 .5
4
XDP9 .4
3
XDP9 .3
2
XDP9 .2
1
XDP9 .1
0
XDP9 .0
XDP9 .13
RW
RW Bit
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
Function Port direction register XDP9 bit y XDP9.y = 0: Port line XP9.y is an input (high-impedance) XDP9.y = 1: Port lineX P9.y is an output 101/186
XDP9.y
ST10F280
XDP9SET (C202h)
15 14 13 12 11 10 9 8
XDP9 SET.8
Reset Value: 0000h
7
XDP9 SET.7
6
XDP9 SET.6
5
XDP9 SET.5
4
XDP9 SET.4
3
XDP9 SET.3
2
XDP9 SET.2
1
XDP9 SET.1
0
XDP9 SET.0
XDP9 XDP9 XDP9 XDP9 XDP9 XDP9 XDP9 SET.15 SET.14 SET.13 SET.12 SET.11 SET.10 SET.9
W
W Bit
W
W
W
W
W
W
W
W Function
W
W
W
W
W
W
XDP9SET.y
Writing a `1' will set the corresponding bit in XDP9 register, Writing a `0' has no effect.
XDP9CLR (C204h)
15 14 13 12 11 10 9 8
XDP9 CLR.8
Reset Value: 0000h
7
XDP9 CLR.7
6
XDP9 CLR.6
5
XDP9 CLR.5
4
XDP9 CLR.4
3
XDP9 CLR.3
2
XDP9 CLR.2
1
XDP9 CLR.1
0
XDP9 CLR.0
XDP9 XDP9 XDP9 XDP9 XDP9 XDP9 XDP9 CLR.15 CLR.14 CLR.13 CLR.12 CLR.11 CLR.10 CLR.9
W
W Bit
W
W
W
W
W
W
W
W Function
W
W
W
W
W
W
XDP9CLR.y
Writing a `1' will clear the corresponding bit in XDP9 register, Writing a `0' has no effect.
XODP9 (C300h)
15 14 13 12 11 10 9 8 7 6 5 4 3
Reset Value: 0000h
2 1 0
XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP XODP9 XODP9 .15 .14 .13 .12 .11 .10 .9 .8 .7 .6 .5 .4 .3 9.2 .1 .0
RW
RW Bit
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
Function Port 9 Open Drain control register bit y XODP9.y = 0: Port line XP9.y output driver in push/pull mode XODP9.y = 1: Port line XP9.y output driver in open drain mode
XODP9.y
XODP9SET (C302h)
15 14 13 12 11 10 9 8 7 6 5 4 3
Reset Value: 0000h
2 1 0
XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 SET.15 SET.14 SET.13 SET.12 SET.11 SET.10 SET.9 SET.8 SET.7 SET.6 SET.5 SET.4 SET.3 SET.2 SET.1 SET.0
W
W Bit
W
W
W
W
W
W
W
W Function
W
W
W
W
W
W
XODP9SET.y
Writing a `1' will set the corresponding bit in XODP9 register, Writing a `0' has no effect.
XODP9CLR (C304h)
15 14 13 12 11 10 9 8 7 6 5 4 3
Reset Value: 0000h
2 1 0
XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 XODP9 CLR.15 CLR.14 CLR.13 CLR.12 CLR.11 CLR.10 CLR.9 CLR.8 CLR.7 CLR.6 CLR.5 CLR.4 CLR.3 CLR.2 CLR.1 CLR.0
W
W Bit
W
W
W
W
W
W
W
W Function
W
W
W
W
W
W
XODP9CLR.y
Writing a `1' will clear the corresponding bit in XODP9 register, Writing a `0' has no effect.
102/186
ST10F280
12.12 - XPort 10 The XPort10 is enabled by setting XPEN bit 2 of the SYSCON register and bit 3 of the new XPERCON register. On the XBUS interface, the register are not bit-addressable. This 16-bit input port can only read data. There is no output latch and no direction register. Data written to XP10 will be lost. XP10 (C380h)
15 14 13 12 11 10 9 8 7 6 5 4 3
Reset Value: XXXXh
2 1 0
XP10 XP10 XP10 XP10 XP10 XP10 XP10 XP10 XP10 XP10 XP10 XP10 XP10 XP10 XP10 XP10 .15 .14 .13 .12 .11 .10 .9 .8 .7 .6 .5 .4 .3 .2 .1 .0 R R Bit XP10.y Port data register XP10 bit y (Read only) R R R R R R R R Function R R R R R R
12.12.1 - Alternate Functions of XPort 10 Each line of XPort 10 is also connected to one of the multiplexer of the Analog/Digital Converter. All port lines (XP10.15...XP10.0) can accept analog signals (AN31...AN16) that can be converted by the ADC. No special programming is required for pins that shall be used as analog inputs. The Table 21 summarizes the alternate functions of XPort 10. Table 21 : XPort 10 Alternate Functions
XPort 10 Pin P10.0 P10.1 P10.2 P10.3 P10.4 P10.5 P10.6 P10.7 P10.8 P10.9 P10.10 P10.11 P10.12 P10.13 P10.14 P10.15 Alternate Function Analog Analog Analog Analog Analog Analog Analog Analog Analog Analog Analog Analog Analog Analog Analog Analog Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input AN16 AN17 AN18 AN19 AN20 AN21 AN22 AN23 AN24 AN25 AN26 AN27 AN28 AN29 AN30 AN31
Figure 51 : PORT10 I/O and Alternate Functions
XPort 10
XP10.15 XP10.14 XP10.13 XP10.12 XP10.11 XP10.10 XP10.9 XP10.8 XP10.7 XP10.6 XP10.5 XP10.4 XP10.3 XP10.2 XP10.1 XP10.0 General Purpose Input AN31 AN30 AN29 AN28 AN27 AN26 AN25 AN24 AN23 AN22 AN21 AN20 AN19 AN18 AN17 AN16 A/D Converter Input
Alternate Function
103/186
ST10F280
12.12.2 - New Disturb Protection on Analog Inputs A new register is provided for additional disturb protection support on analog inputs for Port XP10: XP10DIDIS (C382h)
15
XP10 DIDIS .15
Reset Value: 0000h
12
XP10 DIDIS .12
14
XP10 DIDIS .14
13
XP10 DIDIS .13
11
XP10 DIDIS .11
10
9
8
7
6
5
4
3
2
1
0
XP10 XP10 XP10 XP10 XP10 XP10 XP10 XP10 XP10 XP10 XP10 DIDIS DIDIS.9 DIDIS.8 DIDIS.7 DIDIS.6 DIDIS.5 DIDIS.4 DIDIS.3 DIDIS.2 DIDIS.1 DIDIS.0 .10
RW
RW Bit
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
RW
Function XPort 10 Digital Disable register bit y 0 1 Port line XP10.y digital input is enabled (Schmitt trigger enabled) Port line XP10.y digital input is disabled (Schmitt trigger disabled, necessary for input leakage current reduction)
XP10DIDIS.y
104/186
ST10F280
13 - A/D CONVERTER 13.1 - A/D Converter Module A 10-bit A/D converter with 2 x 16 multiplexed input channels and a sample and hold circuit is integrated on-chip. This A/D Converter does not have the self-calibration feature. Thus, guaranteed Total Unadjusted Error is + 2 LSB. Refer to Section 20.3.1 - A/D Converter Characteristics for detailled characteristics. The sample time (for loading the capacitors) and the conversion time is programmable and can be adjusted to the external circuitry. Convertion time is fully equivalent to the one of previous generation A/D self-calibrated Converter. To remove high frequency components from the analog input signal, a low-pass filter must be connected at the ADC input. Overrun error detection/protection is controlled by the ADDAT register. Either an interrupt request is generated when the result of a previous conversion has not been read from the result register at the time the next conversion is complete, or the next conversion is suspended until the previous result has been read. For applications which require less than 16 analog input channels, the remaining channel inputs can be used as digital input port pins. The A/D converter of the ST10F280 supports four different conversion modes: Single channel conversion mode the analog level on a specified channel is sampled once and converted to a digital result. Single channel continuous mode the analog level on a specified channel is repeatedly sampled and converted without software intervention. Auto scan mode the analog levels on a pre-specified number of channels are sequentially sampled and converted. Auto scan continuous mode the number of pre-specified channels is repeatedly sampled and converted. Channel Injection Mode injects a channel into a running sequence without disturbing this sequence. The peripheral event controller stores the conversion results in memory without entering and exiting interrupt routines for each data transfer.
105/186
ST10F280
13.2 - Multiplexage of two blocks of 16 Analog Inputs The ADC can manage 16 analog inputs, so to increase its capability, a new XADCMUX register is added to control the multiplexage between the first block of 16 channels on Port5 and the second block of 16 channels on XPort10. The conversion result register stays identical and only a software management can determine the block in use. Figure 52 : Block Diagram
Read Port P5.y Internal Bus Read Port XP10.y XBUS CPU clock Input latch CPU clock Input latch
16 0 ADC 16 1 Channel Select y = 15...0 XADCMUX XP10.y P5.y
The XADCMUX register is enabled by setting XPEN bit 2 of the SYSCON register and bit 3 of the new XPERCON register XADCMUX (C384h)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 -
Reset Value: 0000h
1 0 XADCMUX RW
Bit XADCMUX.0 0 1
Function Default configuration,analog inputs on port P5.y can be converted Analog inputs on port XP10.y can be converted
106/186
ST10F280
13.3 - XTIMER Peripheral (trigger for ADC channel injection) This new peripheral is dedicated for the Channel Injection Mode of the A/D converter. This mode injects a channel into a running sequence without disturbing this sequence. The peripheral event controller stores the conversion results in memory without entering and exiting interrupt routines for each data transfer. A channel injection can be triggered by an event on Capture/Compare CC31 (Port P7.7) of the CAPCOM2 unit. The dedicated output XADCINJ of the XTIMER must be connected externally on the input P7.7/ CC31. Due to the multiplexed inputs, at a time, the ADC exclusively converts the Port5 inputs or the XPort10 inputs. If one "y" channel has to be used continuously in injection mode, it must be externally hardware connected to the Port5.y and XPort10.y inputs. The XTIMER peripheral is enabled by setting XPEN bit 2 of the SYSCON register and bit 3 of the new XPERCON register. Table 22 : The Different Counting Modes
TLE x x x 0 x 0 1 TCS x 0 x 1 x 1 1 TCVR(n) = TEVR x 1 0 1 0 1 1 x TSVR 1 TCVR(n)+1 TUD x x 0 TEN 0 1 TCVR(n)-1 TCVR(n+1) TCVR(n) comments Timer disable Stop Decrement Decrement (Continue) Increment Increment (Continue) Load
13.3.1 - Main Features The XTIMER features are : - 16 bits linear timer / 4 bits exponential prescaler - Counting between 16 bits "start value" and 16 bits "end value" - Counting period between 4 cycles and 2**33 cycles (100 ns and 214s using 40MHz CPU clock) - 1 trigger ouput (XADCINJ) - Programmable functions :
* * * * * * * *
Internal clock XCLK is derivated from the CPU clock and has the same period Up counting / down counting Reload enable Continue / stop modes
- 4 memory mapped registers : Control / prescaler Start value End value Current value
107/186
ST10F280
13.3.2 - Register Description 13.3.2.1 - TCR : Timer Control Register XTCR (C000h)
15 0 R Bit TEN Timer Enable When TEN = '0', the Timer is disabled (reset value). To avoid glitches, it is recommended to modify TCR in 2 steps, first with new values and and second by setting TEN. TUD Timer Up / Down Counting When TUD = '0', the Timer is counting "down" (reset value), ie the TCVR ('current value') register content is decremented. When TUD = '1', the Timer is counting "up", ie the TCVR ('current value') register content is incremented. TLE Timer Load Enable When the counter has reached its end value (TCVR = TEVR), TCVR is (re)loaded with TSVR ('start value') register content when TLE = '1'. When TLE = '0' (reset value), the next state of TCVR depends on TCS bit. TCS Timer Continue / Stop When TLE = '0' (no load) and when the counter has reached its end value (TCVR = TEVR), the TCVR content continues to increment / decrement according to TUD bit when TCS = '1' (continue mode). When TCS = '0' (stop mode reset value), TCVR is stopped and its content is frozen. TIE Timer Output Enable When the counter has reached its end value (TCVR = TEVR), the XADCINJ output is set when TIE = '1'. When TIE = '0' (reset value), XADCINJ output is disabled (= '0'). TCM TFP[3:0] Timer Clock Mode Must be Cleared TCM = '0' (reset value), the TCVR clock is derived from internal XCLK clock according to TFP bits. Timer Frequency Prescaler When TCM = '0' (internal clock), the TCVR register clock is derived from the XCLK clock input by dividing XCLK by 2**(2+ TFP). The coding is as follows : - 0000 : prescaler by 2 (reset value), XCLK divided by 4 - 0001 : prescaler by 4, XCLK divided by 8 - 0010 : prescaler by 8, XCLK divided by 16 - ... - 1111 : prescaler by 2**16, XCLK divided by 2**17 14 0 R 13 0 R 12 0 R 11 0 R 10 0 R 9 8 RW Function 7 6 5 TCM RW 4 TIE RW 3 TCS RW TFP[3:0]
Reset Value: 0000h
2 TLE RW 1 TUD RW 0 TEN RW
108/186
ST10F280
13.3.2.2 - XTSVR :Timer Start Value Register XTSVR (C002h)
15 14 13 12 11 10 9 8 TSVR RW Bit TSVR[15:0] Timer Start Value TSVR contains the data to be transferred to the TCVR 'Current Value' register when : 1) TEN = '1' (TIM enable), TLE = '1' (TIM Load enable), TCVR = TEVR (count period finished), TCS = '1' (stop mode disabled). Function 7 6 5 4 3
Reset Value: 0000h
2 1 0
2)
- first counting clock rising edge after the timer start (the timer starts on TEN rising edge).
13.3.2.3 - XTEVR : Timer End Value Register XTEVR (C004h)
15 14 13 12 11 10 9 8 TEVR RW Bit TEVR[15:0] Timer End Value TEVR contains the data to be compared to the TCVR 'Current Value' register. Function 7 6 5 4 3
Reset Value: 0000h
2 1 0
13.3.2.4 - XTCVR : Timer Current Value Register XTCVR (C006h)
15 14 13 12 11 10 9 8 TCVR R Bit TCVR[15:0] Timer Current Value TCVR contains the current counting value. When TCVR = TEVR, TCVR content is changed according to Table 22. The TCVR clock is derived from internal XCLK clock according to TFP bits when TCM = '0'. Function 7 6 5 4 3
Reset Value: 0000h
2 1 0
13.3.2.5 - Registers Mapping Table 23 : Timer Registers Mapping
Address (Hexa) C000h C002h C004h C006h Register Name XTCR : Control XTSVR : Start Value XTEVR : End Value XTCVR : Current Value Reset Value (Hexa) 0000h 0000h 0000h 0000h Access RW RW RW R 109/186
ST10F280
13.3.3 - Block Diagram Figure 53 : XTIMER Block Diagram
DATA
XCLK XTCR XTSVR ctl Prescaling
ctl
ctl
XTEVR
XTCVR
diff ctl
=
+1
-1
Timer output (XADCINJ)
13.3.3.1 - Clocks The XTCVR register clock is the prescaler output. The prescaler allows to divide the basic register frequency in order to offer a wide range of counting period, from 2**2 to 2**33 cycles (note that 1 cycle = 1 XCLK periods). 13.3.3.2 - Registers The XTCVR register input is linked to several sources: - XTSVR register (start value) for reload when the period is finished, or for load when the timer is starting. - Incrementer output when the 'up' mode is selected, - Decrementer output when the 'down' mode is selected. - The selection between the sources is made through the XTCR control register. When starting the timer, by setting TEN bit of TCR to '1', XTCVR will be loaded with XTSVR value on the first rising edge of the counting clock. That's to say that for counting from 0000h to 0009h for
110/186
example, 10 counting clock rising edges are required. The XTCVR register output is continuously compared to the XTEVR register to detect the end of the counting period. When the registers are equal, several actions are made depending on the XTCR control register content : - The output XADCINJ is conditionally generated, - XTCVR is loaded with XTSVR or stops or continues to count (see Table 22). XTEVR, XTSVR and all TCR bits except TEN must not be modified while the timer is counting, ie while TEN bit of TCR = '1'. The timer behaviour is not guaranteed if this rule is not respected. It implies that the timer can be configured only when stopped (TEN = '0'). When programming the timer, XTEVR, XTSVR and XTCR bits except TEN can be modified, with TEN = '0'; then the timer is started by modifying only TEN bit of TCR. To stop the timer, only TEN bit should be modified, from '1' to '0'.
ST10F280
13.3.3.3 - Timer output (XADCINJ) The XADCINJ output is the result of the (XTCVR = XTEVR) flag after differentiation. The duration of the output lasts two cycles (50ns at 40MHz). Figure 54 : XADCINJ Timer Output
XCLK
XADCINJ
4 TCL =50ns
Figure 55 : External Connection for ADC Channel Injection
Clock
P7.7/CC31 CAPCOM2 UNIT Input Latch Output trigger for ADC channel injection XADCINJ
XTIMER
111/186
ST10F280
14 - SERIAL CHANNELS Serial communication with other microcontrollers, microprocessors, terminals or external peripheral components is provided by two serial interfaces: the asynchronous / synchronous serial channel (ASCO) and the high-speed synchronous serial channel (SSC). Two dedicated Baud rate generators set up all standard Baud rates without the requirement of oscillator tuning. For transmission, reception and erroneous reception, 3 separate interrupt vectors are provided for each serial channel. 14.1 - Asynchronous / Synchronous Serial Interface (ASCO) The asynchronous / synchronous serial interface (ASCO) provides serial communication between the ST10F280 and other microcontrollers, microprocessors or external peripherals. A set of registers is used to configure and to control the ASCO serial interface: - P3, DP3, ODP3 for pin configuration - SOBG for Baud rate generator - SOTBUF for transmit buffer - SOTIC for transmit interrupt control - SOTBIC for transmit buffer interrupt control - SOCON for control - SORBUF for receive buffer (read only) - SORIC for receive interrupt control - SOEIC for error interrupt control 14.1.1 - ASCO in Asynchronous Mode In asynchronous mode, 8 or 9-bit data transfer, parity generation and the number of stop bit can be selected. Parity framing and overrun error detection is provided to increase the reliability of data transfers. Transmission and reception of data is double-buffered. Full-duplex communication up to 1.25M Bauds (at 40MHz of fCPU) is supported in this mode.
Figure 56 : Asynchronous Mode of Serial Channel ASC0
Reload Register
CPU Clock
2
Baud Rate Timer
16
S0R
S0M S0STP
S0FE S0PE S0OE
S0REN S0FEN S0PEN Input RxD0/P3.11 Pin S0OEN S0LB
Clock
S0RIR
Receive Interrupt Request Transmit Interrupt Request Error Interrupt Request
Serial Port Control
S0TIR
Shift Clock
S0EIR
0 MUX 1 Sampling
Receive Shift Register
Transmit Shift Register
Pin Output TxD0 / P3.10
Receive Buffer Register S0RBUF
Transmit Buffer Register S0TBUF
Internal Bus
112/186
ST10F280
Asynchronous Mode Baud rates For asynchronous operation, the Baud rate generator provides a clock with 16 times the rate of the established Baud rate. Every received Bit is sampled at the 7th, 8th and 9th cycle of this clock. The Baud rate for asynchronous operation of serial channel ASC0 and the required reload value for a given Baud rate can be determined by the following formulas: (S0BRL) represents the content of the reload register, taken as unsigned 13 Bit integer, (S0BRS) represents the value of Bit S0BRS (`0' or `1'), taken as integer.
fCPU BAsync = 16 x [2 + (S0BRS)] x [(S0BRL) + 1] fCPU S0BRL = ( 16 x [2 + (S0BRS)] x BAsync )1
Using the above equation, the maximum Baud rate can be calculated for any given clock speed. Baud rate versus reload register value (SOBRS=0 and SOBRS=1) is described in Table 24.
Table 24 : Commonly Used Baud Rates by Reload Value and Deviation Errors
S0BRS = `0', fCPU = 40MHz Baud Rate (Baud) 1 250 000 112 000 56 000 38 400 19 200 9 600 4 800 2 400 1 200 600 300 153 Deviation Error 0.0% / 0.0% +1.5% /7.0% +1.5% /3.0% +1.7% /1.4% +0.2% /1.4% +0.2% /0.6% +0.2% /0.2% +0.2% /0.0% 0.1% / 0.0% 0.0% / 0.0% 0.0% / 0.0% 0.0% / 0.0% Reload Value (hexa) 0000 / 0000 000A / 000B 0015 / 0016 001F / 0020 0040 / 0041 0081 / 0082 0103 / 0104 0207 / 0208 0410 / 0411 0822 / 0823 1045 / 1046 1FE8 / 1FE9 S0BRS = `1', fCPU = 40MHz Baud Rate (Baud) 833 333 112 000 56 000 38 400 19 200 9 600 4 800 2 400 1 200 600 300 102 Deviation Error 0.0% / 0.0% +6.3% /7.0% +6.3% /0.8% +3.3% /1.4% +0.9% /1.4% +0.9% /0.2% +0.4% /0.2% +0.1% /0.2% +0.1% /0.1% +0.1% /0.0% 0.0% / 0.0% 0.0% / 0.0% Reload Value (hexa) 0000 / 0000 0006 / 0007 000D / 000E 0014 / 0015 002A / 002B 0055 / 0056 00AC / 00AD 015A / 015B 02B5 / 02B6 056B / 056C 0AD8 / 0AD9 1FE8 / 1FE9
Note: The deviation errors given in the Table 24 are rounded. To avoid deviation errors use a Baud rate crystal (providing a multiple of the ASC0/SSC sampling frequency).
113/186
ST10F280
14.1.2 - ASCO in Synchronous Mode In synchronous mode, data are transmitted or received synchronously to a shift clock which is generated by the ST10F280. Half-duplex communication up to 5M Baud (at 40MHz of fCPU) is possible in this mode. Figure 57 : Synchronous Mode of Serial Channel ASC0
Reload Register
CPU Clock
2
Baud Rate Timer
4
S0R
S0M = 000B
S0OE
S0REN Output TDx0/P3.10 Pin Input/Output RxD0/P3.11 Pin S0OEN S0LB
Clock Serial Port Control Shift Clock
S0RIR
Receive Interrupt Request Transmit Interrupt Request Error Interrupt Request
S0TIR
S0EIR Receive 0 MUX 1 Receive Shift Register Transmit Shift Register
Transmit
Receive Buffer Register S0RBUF
Transmit Buffer Register S0TBUF
Internal Bus
114/186
ST10F280
Synchronous Mode Baud Rates For synchronous operation, the Baud rate generator provides a clock with 4 times the rate of the established Baud rate. The Baud rate for synchronous operation of serial channel ASC0 can be determined by the following formula: (S0BRL) represents the content of the reload register, taken as unsigned 13 Bit integers, (S0BRS) represents the value of Bit S0BRS (`0' or `1'), taken as integer.
BSync =
fCPU 4 x [2 + (S0BRS)] x [(S0BRL) + 1] fCPU )1
S0BRL = (
4 x [2 + (S0BRS)] x BSync
Using the above equation, the maximum Baud rate can be calculated for any clock speed as given in Table 25.
Table 25 : Commonly Used Baud Rates by Reload Value and Deviation Errors
S0BRS = `0', fCPU = 40MHz Baud Rate (Baud) 5 000 000 112 000 56 000 38 400 19 200 9 600 4 800 2 400 1 200 900 612 Deviation Error 0.0% / 0.0% +1.5% /0.8% +0.3% /0.8% +0.2% /0.6% +0.2% /0.2% +0.2% /0.0% +0.1% /0.0% 0.0% / 0.0% 0.0% / 0.0% 0.0% / 0.0% 0.0% / 0.0% Reload Value (hexa) 0000 / 0000 002B / 002C 0058 / 0059 0081 / 0082 0103 / 0104 0207 / 0208 0410 / 0411 0822 / 0823 1045 / 1046 15B2 / 15B3 1FE8 / 1FE9 S0BRS = `1', fCPU = 40MHz Baud Rate (Baud) 3 333 333 112 000 56 000 38 400 19 200 9 600 4 800 2 400 1 200 600 407 Deviation Error 0.0% / 0.0% +2.6% /0.8% +0.9% /0.8% +0.9% /0.2% +0.4% /0.2% +0.1% /0.2% +0.1% /0.1% +0.1% /0.0% 0.0% / 0.0% 0.0% / 0.0% 0.0% / 0.0% Reload Value (hexa) 0000 / 0000 001C / 001D 003A / 003B 0055 / 0056 00AC / 00AD 015A / 015B 02B5 / 02B6 056B / 056C 0AD8 / 0AD9 15B2 / 15B3 1FFD / 1FFE
Note: The deviation errors given in the Table 25 are rounded. To avoid deviation errors use a Baud rate crystal (providing a multiple of the ASC0/SSC sampling frequency)
115/186
ST10F280
14.2 - High Speed Synchronous Serial Channel (SSC) The High-Speed Synchronous Serial Interface SSC provides flexible high-speed serial communication between the ST10F280 and other microcontrollers, microprocessors or external peripherals. The SSC supports full-duplex and half-duplex synchronous communication. The serial clock signal can be generated by the SSC itself (master mode) or be received from an external master (slave mode). Data width, shift direction, clock polarity and phase are programmable. This allows communication with SPI-compatible devices. Transmission and reception of data is double-buffered. A 16-bit Baud rate generator provides the SSC with a separate serial clock signal. The serial channel SSC has its own dedicated 16-bit Baud rate generator with 16-bit reload capability, allowing Baud rate generation independent from the timers.
Figure 58 : Synchronous Serial Channel SSC Block Diagram
CPU Clock Slave Clock Baud Rate Generator Clock Control Shift Clock Receive Interrupt Request Transmit Interrupt Request Error Interrupt Request SSC Control Block Master Clock Pin SCLK
Status
Control Pin Pin Control MTSR
16-Bit Shift Register
Pin
MRST
Transmit Buffer Register SSCTB
Receive Buffer Register SSCRB
Internal Bus
116/186
ST10F280
Baud Rate Generation The Baud rate generator is clocked by fCPU/2. The timer is counting downwards and can be started or stopped through the global enable Bit SSCEN in register SSCCON. Register SSCBR is the dual-function Baud Rate Generator/Reload register. Reading SSCBR, while the SSC is enabled, returns the content of the timer. Reading SSCBR, while the SSC is disabled, returns the programmed reload value. In this mode the desired reload value can be written to SSCBR. Note Never write to SSCBR, while the SSC is enabled. (SSCBR) represents the content of the reload register, taken as unsigned 16 Bit integer. Table 26 lists some possible Baud rates against the required reload values and the resulting bit times for a 40MHz CPU clock. Table 26 : Synchronous Baud Rate and Reload Values
Baud Rate Reserved use a reload value > 0. 10M Baud 5M Baud 2.5M Baud 1M Baud Bit Time --100ns 200ns 400ns 1s 10s 100s 1ms 3.26ms Reload Value --0001h 0003h 0007h 0013h 00C7h 07CFh 4E1Fh FF4Eh
The formulas below calculate the resulting Baud rate for a given reload value and the required reload value for a given Baud rate: fCPU Baud rateSSC = 2 x [(SSCBR) + 1] fCPU SSCBR = ( )1 2 x Baud rateSSC
100K Baud 10K Baud 1K Baud 306 Baud
117/186
ST10F280
15 - CAN MODULES The two integrated CAN modules (CAN1 and CAN2) are identical and handle the completely autonomous transmission and reception of CAN frames in accordance with the CAN specification V2.0 part B (active) i.e. the on-chip CAN module can receive and transmit standard frames with 11-bit identifiers as well as extended frames with 29-bit identifiers. Because of duplication of CAN controllers, the following adjustements are to be considered: - The same internal register addresses both CAN controllers, but with the base addresses differing in address bit A8 and separate chip select for each CAN module. For address mapping, see Chapter 4. - The CAN1 transmit line (CAN1_TxD) is the alternate function of the port P4.6 and the receive line (CAN1_RxD) is P4.5. - The CAN2 transmit line (CAN2_TxD) is the alternate function of the port P4.7 and the receive line (CAN2_RxD) is the alternate function of the port P4.4. - Interrupt of CAN2 is connected to the XBUS interrupt line XP1 (CAN1 is on XP0). - Because of the new XPERCON register, both CAN modules have to be selected, before the bit XPEN is set in SYSCON register. - After reset, the CAN1 is selected with the related control bit in the XPERCON register. The CAN2 is not selected. 15.1 - Memory Mapping 15.1.1 - CAN1 Address range 00'EF00h 00'EFFFh is reserved for the CAN1 Module access. The CAN1 is enabled by setting bit 0 of the new XPERCON register before setting XPEN bit 2 of the SYSCON register. Accesses to the CAN Module use demultiplexed addresses and a 16-bit data bus (byte accesses are possible). Two waitstates give an access time of 100 ns at 40MHz CPU clock. No tristate waitstate is used. 15.1.2 - CAN2 Address range 00'EE00h 00'EEFFh is reserved for the CAN2 Module access. The CAN2 is enabled by setting XPEN bit 2 of the SYSCON register and bit 1 of the new XPERCON register. Accesses to the CAN Module use demultiplexed addresses and a 16-bit data bus (byte accesses are possible). Two waitstates give an access time of 100 ns at 40MHz CPU clock. No tristate waitstate is used.
118/186
Note: If one or the two CAN modules are used, Port 4 can not be programmed to output all 8 segment address lines. Thus, only 4 segment address lines can be used, reducing the external memory space to 5M Bytes (1M Byte per CS line). 15.2 - CAN Bus Configurations Depending on application, CAN bus configuration may be one single bus with a single or multiple interfaces or a multiple bus with a single or multiple interfaces. The ST10F280 is able to support these 2 cases. Single CAN Bus The single CAN Bus multiple interfaces configuration may be implemented using 2 CAN transceives as shown in Figure 59. Figure 59 : Single CAN Bus Multiple Interfaces Multiple Transceivers
CAN1 RxD TxD CAN2 RxD TxD
CAN Transceiver CAN_H CAN_H
CAN Transceiver
CAN bus
The ST10F280 also supports single CAN Bus multiple (dual) interfaces using the open drain option of the CANx_TxD output as shown in Figure 60. Thanks to the OR-Wired Connection, only one transceiver is required. In this case the design of the application must take in account the wire length and the noise environment. Figure 60 : Single CAN Bus Dual Interfaces Single Transceiver
CAN1 RxD TxD CAN2 RxD TxD
*
*
2.7k
+5V
CAN Transceiver CAN_H CAN_H CAN bus
* Open drain output
ST10F280
Multiple CAN Bus The ST10F280 provides 2 CAN interfaces to support the kind of bus configuration shown in Figure 61. Figure 61 : Connection to Two Different CAN Buses (e.g. for gateway application)
CAN1 RxD TxD CAN2 RxD TxD
CAN Transceiver CAN_H CAN_H CAN bus 1
CAN Transceiver
CAN bus 2
15.3 - Register and Message Object Organization All registers and message objects of the CAN controller are located in the special CAN address area of 256 bytes, which is mapped into segment 0 and uses addresses 00'EE00h through 00'EFFFh. All registers are organized as 16 bit registers, located on word addresses. However, all registers may be accessed byte wise in order to select special actions without effecting other mechanisms. Note The address map shown in Figure 62 lists the registers which are part of the CAN controller. There are also ST10F280 specific registers that are associated with the CAN Module. These registers, however, control the access to the CAN Module rather than its function.
Figure 62 : CAN Module Address Map Message Object 15 Message Object 14 Message Object 13 Message Object 12 Message Object 11 Message Object 10 Message Object 9 Message Object 8 Message Object 7 Message Object 6 Message Object 5 Message Object 4 Message Object 3 Message Object 2 Message Object 1 General Registers CAN Address Area Global Mask Short Bit Timing Register Interrupt Register EF02h/EE02h Control / Status Register General Registers EF00h/EE00h Global Mask Long EF08h/EE08h Mask of Last Message EF0Ch/EE0Ch
EEF0h EFF0h EEE0h EFE0h EED0h EFD0h EEC0h EFC0h EEB0h EFB0h EEA0h EFA0h EE90h EF90h EE80h EF80h EE70h EF70h EE60h EF60h EE50h EF50h EE40h EF40h EE30h EF30h EE20h EF20h EE10h EF10h EE00h EF00h CAN2 CAN1
EF06h/EE06h
EF04h/EE04h
119/186
ST10F280
Control / Status Register (EF00h/EE00h)
15 R 14 R 13 12 RW 11 RW 10 9 LEC RW BOFF EWRN RXOK TXOK
XReg
8 7 TST RW 6 CCE RW 5 0 R 4 0 R 3 EIE RW
Reset Value: XX01h
2 SIE RW 1 IE RW 0 INIT RW
Table 27 : CAN Control/Status Register
Bit INIT Initialization 1: Software initialization of the CAN controller. While init is set, all message transfers are stopped. Setting init does not change the configuration registers and does not stop transmission or reception of a message in progress. The INIT bit is also set by hardware, following a busoff condition; the CPU then needs to reset INIT to start the bus recovery sequence. Disable software initialization of the CAN controller; on INI completion, the CAN waits for 11 consecutive recessive bit before taking part in bus activities. Function (Control Bit)
0: IE
Interrupt Enable Does not affect status updates. 1: 0: Global interrupt enable from CAN module. Global interrupt disable from CAN module.
SIE
Status Change Interrupt Enable 1: 0: Enables interrupt generation when a message transfer (reception or transmision is successfully completed) or CAN bus error is detected and registered in LEC is the status partition. Disable status change interrupt.
EIE
Error Interrupt Enable 1: 0: Enables interrupt generation on a change of bit BOFF or EWARN in the status partition. Disable error interrupt.
CCE
Configuration Change Enable 1: 0: Allows CPU access to the bit timing register Disables CPU access to the bit timing register
TST
Test Mode (Bit 7) Make sure that bit 7 is cleared when writing to the Control Register. Writing a 1 during normal operation may lead erroneous device behaviour.
LEC
Last Error Code This field holds a code which indicates the type of the last error occurred on the CAN bus. If a message has been transferred (reception or transmission) without error, this field will be cleared. Code "7" is unused and may be written by the CPU to check for updates. 0: 1: 2: 3: 4: 5: No Error Stuff Error: More than 5 equal bit in a sequence have occurred in a part of a received message where this is not allowed. Form Error: A fixed format part of a received frame has the wrong format. AckError: The message this CAN controller transmitted was not acknowledged by another node Bit1Error: During the transmission of a message (with the exception of the arbitration field), the device wanted to send a recessive level ("1"), but the monitored bus value was dominant Bit0Error: During the transmission of a message (or acknowledge bit, active error flag, or overload flag), the device wanted to send a dominant level ("0"), but the monitored bus value was recessive. During busoff recovery this status is set each time a sequence of 11 recessive bit has been monitored. This enables the CPU to monitor the proceeding of the busoff recovery sequence (indicating the bus is not stuck at dominant or continuously disturbed). CRCError: The CRC check sum was incorrect in the message received.
6: 120/186
ST10F280
Bit TXOK Transmitted Message Successfully
Function (Control Bit)
Indicates that a message has been transmitted successfully (error free and acknowledged by at least one other node), since this bit was last reset by the CPU (the CAN controller does not reset this bit!). RXOK Received Message Successfully Indicates that a message has been received successfully, since this bit was last reset by the CPU (the CAN controller does not reset this bit!). EWRN BOFF Error Warning Status Indicates that at least one of the error counters in the EML has reached the error warning limit of 96. Busoff Status Indicates when the CAN controller is in busoff state (see EML).
Note Reading the upper half of the Control Register (status partition) will clear the Status Change Interrupt value in the Interrupt Register, if it is pending. Use byte accesses to the lower half to avoid this. 15.4 - CAN Interrupt Handling The on-chip CAN Module has one interrupt output, which is connected (through a synchronization stage) to a standard interrupt node in the ST10F280 in the same manner as all other interrupts of the standard on-chip peripherals. The control register for this interrupt is XP0IC (located at address F186h/C3h for CAN1 and F18Eh/C7h for CAN2 in the ESFR range). The associated interrupt vector is called XP0INT at location 100h (trap number 40h) and XP1INT at location 104h (trap number 41h). With this configuration, the user has all control options available for this interrupt, such as enabling/ disabling, level and group priority, and interrupt or PEC service (see note below). As for all other interrupts, the interrupt request flag XP0IR/XP1IR in register XP0IC/XP1IC is cleared automatically by hardware when this interrupt is serviced (either by standard interrupt or PEC service). Note As a rule, CAN interrupt requests can be serviced by a PEC channel. However, because PEC channels only can execute
single predefined data transfers (there are no conditional PEC transfers), PEC service can only be used, if the respective request is known to be generated by one specific source, and that no other interrupt request will be generated in between. In practice this seems to be a rare case. Since an interrupt request of the CAN Module can be generated due to different conditions, the appropriate CAN interrupt status register must be read in the service routine to determine the cause of the interrupt request. The Interrupt Identifier INTID (a number) in the Interrupt Register indicates the cause of an interrupt. When no interrupt is pending, the identifier will have the value 00h. If the value in INTID is not 00h, then there is an interrupt pending. If bit IE in the Control Register is set, also the interrupt line to the CPU is activated. The interrupt line remains active until either INTID gets 00h (after the interrupt requester has been serviced) or until IE is reset (if interrupts are disabled). The interrupt with the lowest number has the highest priority. If a higher priority interrupt (lower number) occurs before the current interrupt is processed, INTID is updated and the new interrupt overrides the last one. The Table 28 lists the valid values for INTID and their corresponding interrupt sources.
121/186
ST10F280
Interrupt Register (EF02h/EE02h)
15 14 13 12 11 10 9
XReg
8 7 6 5 4 INTID R 3
Reset Value: - - XXh
2 1 0
RESERVED
Bit INTID
Function Interrupt Identifier This number indicates the cause of the interrupt. When no interrupt is pending, the value will be "00".
Table 28 : INTID values and Corresponding Interrupt Sources
INTID 00 01 Cause of the Interrupt Interrupt Idle: There is no interrupt request pending. Status Change Interrupt: The CAN controller has updated (not necessarily changed) the status in the Control Register. This can refer to a change of the error status of the CAN controller (EIE is set and BOFF or EWRN change) or to a CAN transfer incident (SIE must be set), like reception or transmission of a message (RXOK or TXOK is set) or the occurrence of a CAN bus error (LEC is updated). The CPU may clear RXOK, TXOK, and LEC, however, writing to the status partition of the Control Register can never generate or reset an interrupt. To update the INTID value the status partition of the Control Register must be read. Message 15 Interrupt: Bit INTPND in the Message Control Register of message object 15 (last message) has been set. The last message object has the highest interrupt priority of all message objects. 1) Message N Interrupt: Bit INTPND in the Message Control Register of message object `N' has been set (N = 1...14). 1) 2)
02
(2+N)
Notes 1) Bit INTPND of the corresponding message object has to be cleared to give messages with a lower priority the possibility to update INTID or to reset INTID to 00h (idle state). 2) A message interrupt code is only displayed, if there is no other interrupt request with a higher priority.
Bit Timing Configuration According to the CAN protocol specification, a bit time is subdivided into four segments: Sync segment, propagation time segment, phase buffer segment 1 and phase buffer segment 2. Figure 63 : Bit Timing Definition
Each segment is a multiple of the time quantum tq with tq = ( BRP + 1 ) x 2 x t XCLK The Synchronization Segment (Sync seg) is always 1 tq long. The Propagation Time Segment and the Phase Buffer Segment1 (combined to Tseg1) defines the time before the sample point, while Phase Buffer Segment2 (Tseg2) defines the time after the sample point. The length of these segments is programmable (except Sync-Seg). Note For exact definition of these segments please refer to the CAN Specification.
1 bit time Sync Seg TSeg1 TSeg2 Sync Seg
1 time quantum
sample point
transmit point
122/186
ST10F280
Bit Timing Register (EF04h/EE04h)
15 0 R Bit BRP SJW TSEG1 TSEG2 14 13 TSEG2 RW 12 11 10 9
XReg
8 7 SJW RW Function 6 5 4 3
Reset Value: UUUUh
2 BRP RW 1 0
TSEG1 RW
Baud Rate Prescaler For generating the bit time quanta the CPU frequency is divided by 2 x (BRP+1). (Re)Synchronization Jump Width Adjust the bit time by maximum (SJW+1) time quanta for re-synchronization. Time Segment before sample point There are (TSEG1+1) time quanta before the sample point. Valid values for TSEG1 are "2...15". Time Segment after sample point There are (TSEG2+1) time quanta after the sample point. Valid values for TSEG2 are "1...7".
Note This register can only be written, if the configuration change enable bit (CCE) is set. Mask Registers Messages can use standard or extended identifiers. Incoming frames are masked with their appropriate global masks. Bit IDE of the incoming message determines whether the standard 11 bit mask in Global Mask Short or the 29 bit extended mask in Global Mask Long is to be used. Bit holding a "0" mean "don't care", so do not Global Mask Short (EF06h/EE06h)
15 14 ID20...18 RW Bit ID28...18 13 12 1 R 11 1 R 10 1 R 9 1 R
compare the message's identifier in the respective bit position. The last message object (15) has an additional individually programmable acceptance mask (Mask of Last Message) for the complete arbitration field. This allows classes of messages to be received in this object by masking some bits of the identifier. Note The Mask of Last Message is ANDed with the Global Mask that corresponds to the incoming message. Reset Value: UFUUh
6 5 4 3 2 1 0
XReg
8 1 R Function 7
ID28...21 RW
Identifier (11 Bit) Mask to filter incoming messages with standard identifier.
Upper Global Mask Long (EF08h/EE08h)
15 14 13 12 11 10 9
XReg
8 7 6 5 4 3
Reset Value: UUUUh
2 1 0
ID20...13 RW
ID28...21 RW
123/186
ST10F280
Lower Global Mask Long (EF0Ah/EE0Ah)
15 14 13 ID4...0 RW Bit ID28...0 12 11 10 0 R 9 0 R
XReg
8 0 R Function 7 6 5 4 3
Reset Value: UUUUh
2 1 0
ID12...5 RW
Identifier (29 bit) Mask to filter incoming messages with extended identifier.
Upper Mask of Last Message (EF0Ch/EE0Ch) XReg
15 14 ID20...18 RW 13 12 11 10 ID17...13 RW 9 8 7 6 5 4 3
Reset Value: UUUUh
2 1 0
ID28...21 RW
Lower Mask of Last Message (EF0Eh/EE0Eh) XReg
15 14 13 ID4...0 RW Bit ID28...0 12 11 10 0 R 9 0 R 8 0 R Function 7 6 5 4 3
Reset Value: UUUUh
2 1 0
ID12...5 RW
Identifier (29 bit) Mask to filter the last incoming message (Nr. 15) with standard or extended identifier (as configured).
15.5 - The Message Object The message object is the primary means of communication between CPU and CAN controller. Each of the 15 message objects uses 15 consecutive bytes (see Figure 64) and starts at an address that is a multiple of 16. Note All message objects must be initialized by the CPU, even those which are not going to be used, before clearing the INIT bit. Each element of the Message Control Register is made of two complementary bits. This special mechanism allows the selective setting or resetting of specific elements (leaving others unchanged) without requiring read-modify-write cycles. None of these elements will be affected by reset.
The Table 29 shows how to use and to interpret these 2 bit-fields. Figure 64 : Message Object Address Map
Object Start Address Message Control Arbitration +0 +2 +4 +6 +8 +10 +12 +14
Data0 Data2 Data4 Data6 Reserved
Message Config.
Data1 Data3 Data5 Data7
Table 29 : Functions of Complementary Bit of Message Control Register
Value 00 01 10 11 124/186 Function on Write Reserved Reset element Set element Leave element unchanged Meaning on Read Reserved Element is reset Element is set Reserved
ST10F280
Message Control Register (EFn0h/EEn0h)
15 14 13 12 11 10 9
XReg
8 7 6 5 TXIE RW 4 3
Reset Value: UUUUh
2 RXIE RW 1 0
RMTPND RW Bit INTPND
TXRQ RW
MSGLST CPUUPD RW
NEWDAT RW
MSGVAL RW Function
INTPND RW
Interrupt Pending Indicates, if this message object has generated an interrupt request (see TXIE and RXIE), since this bit was last reset by the CPU, or not. Receive Interrupt Enable Defines, if bit INTPND is set after successful reception of a frame. Transmit Interrupt Enable Defines, if bit INTPND is set after successful transmission of a frame. 1 Message Valid Indicates, if the corresponding message object is valid or not. The CAN controller only operates on valid objects. Message objects can be tagged invalid, while they are changed, or if they are not used at all. New Data Indicates, if new data has been written into the data portion of this message object by CPU (transmit-objects) or CAN controller (receive-objects) since this bit was last reset, or not. 2 Message Lost (This bit applies to receive-objects only) Indicates that the CAN controller has stored a new message into this object, while NEWDAT was still set, i.e. the previously stored message is lost. CPU Update (This bit applies to transmit-objects only) Indicates that the corresponding message object may not be transmitted now. The CPU sets this bit in order to inhibit the transmission of a message that is currently updated, or to control the automatic response to remote requests. Transmit Request Indicates that the transmission of this message object is requested by the CPU or via a remote frame and is not yet done. TXRQ can be disabled by CPUUPD. 1 3 Remote Pending (Used for transmit-objects) Indicates that the transmission of this message object has been requested by a remote node, but the data has not yet been transmitted. When RMTPND is set, the CAN controller also sets TXRQ. RMTPND and TXRQ are cleared, when the message object has been successfully transmitted.
RXIE TXIE MSGVAL
NEWDAT
MSGLST (Receive) CPUUPD (Transmit)
TXRQ
RMTPND
Notes 1. In message object 15 (last message) these bits are hardwired to "0" (inactive) in order to prevent transmission of message 15. 2. When the CAN controller writes new data into the message object, unused message bytes will be overwritten by non specified values. Usually the CPU will clear this bit before working on the data, and verify that the bit is still cleared once it has finished working to ensure that it has worked on a consistent set of data and not part of an old message and part of the new message. For transmit-objects the CPU will set this bit along with clearing bit CPUUPD. This will ensure that, if the message is actually being transmitted during the time the message was being updated by the CPU, the CAN controller will not reset bit TXRQ. In this way bit TXRQ is only reset once the actual data has been transferred. 3. When the CPU requests the transmission of a receive-object, a remote frame will be sent instead of a data frame to request a remote node to send the corresponding data frame. This bit will be cleared by the CAN controller along with bit RMTPND when the message has been successfully transmitted, if bit NEWDAT has not been set. If there are several valid message objects with pending transmission request, the message with the lowest message number is transmitted first.
125/186
ST10F280
15.6 - Arbitration Registers The arbitration Registers are used for acceptance filtering of incoming messages and to define the identifier of outgoing messages. Upper Arbitration Reg (EFn2h/EEn2h)
15 14 ID20...18 RW 13 12 11 10 ID17...13 RW 9
XReg
8 7 6 5 4 3
Reset Value: UUUUh
2 1 0
ID28...21 RW
Lower Arbitration Reg (EFn4h/EEn4h)
15 14 13 ID4...0 RW Bit ID28...0 12 11 10 0 R 9 0 R
XReg
8 0 R Function 7 6 5 4 3
Reset Value: UUUUh
2 1 0
ID12...5 RW
Identifier (29 bit) Identifier of a standard message (ID28...18) or an extended message (ID28...0). For standard identifiers bit ID17...0 are "don't care".
126/186
ST10F280
16 - WATCHDOG TIMER The Watchdog Timer is a fail-safe mechanism which prevents the microcontroller from malfunctioning for long periods of time. The Watchdog Timer is always enabled after a reset of the chip and can only be disabled in the time interval until the EINIT (end of initialization) instruction has been executed. Therefore, the chip start-up procedure is always monitored. The software must be designed to service the watchdog timer before it overflows. If, due WDTCON (FFAEh / D7h)
15 14 13 12 11 10 9 8 7 -
to hardware or software related failures, the software fails to do so, the watchdog timer overflows and generates an internal hardware reset. It pulls the RSTOUT pin low in order to allow external hardware components to be reset. Each of the different reset sources is indicated in the WDTCON register. The indicated bit are cleared with the EINIT instruction. The origine of the reset can be identified during the initialization phase. SFR
6 5 4 3
Reset Value: 00xxh
2 SWR R 1 0
WDTREL RW
PONR LHWR SHWR R R R
WDTR WDTIN R RW
WDTIN
Watchdog Timer Input Frequency Selection `0': Input Frequency is fCPU/2. `1': Input Frequency is fCPU/128. Watchdog Timer Reset Indication Flag Set by the watchdog timer on an overflow. Cleared by a hardware reset or by the SRVWDT instruction. Software Reset Indication Flag Set by the SRST execution. Cleared by the EINIT instruction. Short Hardware Reset Indication Flag Set by the input RSTIN. Cleared by the EINIT instruction. Long Hardware Reset Indication Flag Set by the input RSTIN. Cleared by the EINIT instruction. Power-On (Asynchronous) Reset Indication Flag Set by the input RSTIN if a power-on condition has been detected. Cleared by the EINIT instruction.
WDTR1
SWR1
SHWR1
LHWR1
PONR 1- 2
Notes: 1. More than one reset indication flag may be set. After EINIT, all flags are cleared. 2. Power-on is detected when a rising edge from Vcc = 0 V to Vcc > 2.0 V is recognized.
127/186
ST10F280
The PONR flag of WDTCON register is set if the output voltage of the internal 3.3V supply falls below the threshold (typically 2V) of the power-on detection circuit. This circuit is efficient to detect major failures of the external 5V supply but if the internal 3.3V supply does not drop under 2 volts, the PONR flag is not set. This could be the case on fast switch-off / switch-on of the 5V supply. The time needed for such a sequence to activate the PONR flag depends on the value of the capacitors connected to the supply and on the exact value of the internal threshold of the detection circuit. Table 30 : WDTCON Bits Value on Different Resets
Reset Source Power On Reset Power on after partial supply failure Long Hardware Reset Short Hardware Reset Software Reset Watchdog Reset
Notes: 1. PONR bit may not be set for short supply failure. 2. For power-on reset and reset after supply partial failure, asynchronous reset must be used.
PONR X 1
LHWR X X X
SHWR X X X X
SWR X X X X X X
WDTR
X
In case of bi-directional reset is enabled, and if the RSTIN pin is latched low after the end of the internal reset sequence, then a Short hardware reset, a software reset or a watchdog reset will trigger a Long hardware reset. Thus, Reset Indications flags will be set to indicate a Long Hardware Reset. The Watchdog Timer is 16-bit, clocked with the system clock divided by 2 or 128. The high Byte of the watchdog timer register can be set to a pre-specified reload value (stored in WDTREL). Each time it is serviced by the application software, the high byte of the watchdog timer is reloaded. For security, rewrite WDTCON each time before the watchdog timer is serviced The Table 31 shows the watchdog time range for 40MHz CPU clock. Table 31 : WDTREL Reload Value
Prescaler for fCPU = 40MHz Reload value in WDTREL 2 (WDTIN = `0') FFh 00h 12.8s 3.276ms 128 (WDTIN = `1') 819.2ms 209.7ms
The watchdog timer period is calculated with the following formula: P WD T 1 = -------------- x 512 x ( 1 + [ W DTIN ] x 63 ) x ( 256 - [ W DTREL ] ) f CPU
128/186
ST10F280
17 - SYSTEM RESET Table 32 : Reset Event Definition
Reset Source Power-on reset Long Hardware reset (synchronous & asynchronous) Short Hardware reset (synchronous reset) Watchdog Timer reset Software reset
System reset initializes the MCU in a predefined state. There are five ways to activate a reset state. The system start-up configuration is different for each case as shown in Table 32.
17.1 - Asynchronous Reset (Long Hardware Reset) An asynchronous reset is triggered when RSTIN pin is pulled low while RPD pin is at low level. Then the MCU is immediately forced in reset default state. It pulls low RSTOUT pin, it cancels pending internal hold states if any, it waits for any internal access cycles to finish, it aborts external bus cycle, it switches buses (data, address and control signals) and I/O pin drivers to high-impedance, it pulls high PORT0 pins and the reset sequence starts. Power-on reset The asynchronous reset must be used during the power-on of the MCU. Depending on crystal frequency, the on-chip oscillator needs about 10ms to 50ms to stabilize. The logic of the MCU does not need a stabilized clock signal to detect an asynchronous reset, so it is suitable for power-on condi-
CPU Clock
RSTIN
UN D
RPD
RSTOUT ALE
ER
Asynchronous Reset Condition
Figure 65 : Asynchronous Reset Timing
6 TCL or 8 TCL1
UP
PORT0
Reset Configuration Latching point of PORT0 for system start-up configuration
Internal Reset Signal
Note: 1. RSTIN rising edge to internal latch of PORT0 is 3 CPU clock cycles (6 TCL) if the PLL is bypassed and the prescaler is on (fCPU = fXTAL / 2), else it is 4 CPU clock cycles (8 TCL) .
DA TI NG
Short-cut PONR LHWR Power-on t RSTIN > 1032 TCL SHWR WDTR SWR
INST #1
Conditions
4 TCL < t RSTIN < 1032 TCL WDT overflow SRST execution
tions. To ensure a proper reset sequence, the RSTIN pin and the RPD pin must be held at low level until the MCU clock signal is stabilized and the system configuration value on PORT0 is settled. Hardware reset The asynchronous reset must be used to recover from catastrophic situations of the application. It may be triggerred by the hardware of the application. Internal hardware logic and application circuitry are described in Reset circuitry chapter and Figures Figure 68 :, Figure 69 : and Figure 70 :.
Exit of asynchronous reset state When the RSTIN pin is pulled high, the MCU restarts. The system configuration is latched from PORT0 and ALE, RD and R/W pins are driven to their inactive level. The MCU starts program execution from memory location 00'0000h in code segment 0. This starting location will typically point to the general initialization routine. Timing of asynchronous reset sequence are summarized in Figure 65.
129/186
ST10F280
17.2 - Synchronous Reset (Warm Reset) A synchronous reset is triggered when RSTIN pin is pulled low while RPD pin is at high level. In order to properly activate the internal reset logic of the MCU, the RSTIN pin must be held low, at least, during 4 TCL (2 periods of CPU clock). The I/O pins are set to high impedance and RSTOUT pin is driven low. After RSTIN level is detected, a short duration of 12 TCL (approximately 6 periods of CPU clock) elapes, during which pending internal hold states are cancelled and the current internal access cycle if any is completed. External bus cycle is aborted. The internal pull-down of RSTIN pin is activated if bit BDRSTEN of SYSCON register was previously set by software. This bit is always cleared on power-on or after a reset sequence.
Figure 66 : Synchronous Warm Reset (Short low pulse on RSTIN)
4 TCL min. 12 TCL max. 1024 TCL
CPU Clock
1
RPD
UP
Reset Configuration
RSTIN
Internally pulled low4
200A Discharge
RSTOUT ALE
PORT0
ER
Latching point of PORT0 for system start-up configuration
Internal Reset Signal
UN D
Notes: 1. RSTIN assertion can be released there. 2. If during the reset condition (RSTIN low), VRPD voltage drops below the threshold voltage (about 2.5V for 5V operation), the asynchronous reset is then immediately entered. 3. RSTIN rising edge to internal latch of PORT0 is 3 CPU clock cycles (6 TCL) if the PLL is bypassed and the prescaler is on (fCPU = fXTAL / 2), else it is 4 CPU clock cycles (8 TCL). 4) RSTIN pin is pulled low if bit BDRSTEN (bit 5 of SYSCON register) was previously set by software. Bit BDRSTEN is cleared after reset.
130/186
DA TI NG
6 or 8 TCL3
2
Exit of synchronous reset state The internal reset sequence starts for 1024 TCL (512 periods of CPU clock) and RSTIN pin level is sampled. The reset sequence is extended until RSTIN level becomes high. Then, the MCU restarts. The system configuration is latched from PORT0 and ALE, RD and R/W pins are driven to their inactive level. The MCU starts program execution from memory location 00'0000h in code segment 0. This starting location will typically point to the general initialization routine. Timing of synchronous reset sequence are summarized in Figure 66 and Figure 67.
VRPD > 2.5V Asynchronous Reset not entered.
INST #1
ST10F280
Figure 67 : Synchronous Warm Reset (Long low pulse on RSTIN)
4 TCL 12 TCL 1024 TCL
CPU Clock
RSTIN RPD
Internally pulled low3
200A Discharge
RSTOUT ALE
PORT0
Reset Configuration
Internal Reset Signal
Notes: 1. RSTIN rising edge to internal latch of PORT0 is 3 CPU (6 TCL) clock cycles if the PLL is bypassed and the prescaler is on (fCPU = fXTAL / 2), else it is 4 CPU clock cycles (8 TCL). 2. If during the reset condition (RSTIN low), VRPD voltage drops below the threshold voltage (about 2.5V for 5V operation), the asynchronous reset is then immediately entered. 3. RSTIN pin is pulled low if bit BDRSTEN (bit 5 of SYSCON register) was previously set by soft-ware. Bit BDRSTEN is cleared after reset.
17.3 - Software Reset
ER
The reset sequence can be triggered at any time using the protected instruction SRST (software reset). This instruction can be executed deliberately within a program, for example to leave bootstrap loader mode, or upon a hardware trap that reveals a system failure.
UN D
Upon execution of the SRST instruction, the internal reset sequence (1024 TCL) is started. The microcontroller behaviour is the same as for a Short Hardware reset, except that only P0.12...P0.6 bit are latched at the end of the reset sequence, while P0.5...P0.2 bit are cleared. 17.4 - Watchdog Timer Reset When the watchdog timer is not disabled during the initialization or when it is not regularly serviced during program execution it will overflow and it will trigger the reset sequence.
UP
DA TI NG
6 or 8 TCL1
2
VRPD > 2.5V Asynchronous Reset not entered.
Latching point of PORT0 for system start-up configuration
Unlike hardware and software resets, the watchdog reset completes a running external bus cycle if this bus cycle either does not use READY, or if READY is sampled active (low) after the programmed wait states. When READY is sampled inactive (high) after the programmed wait states the running external bus cycle is aborted. Then the internal reset sequence is started. At the end of the internal reset sequence (1024 TCL), only P0.12...P0.6 bit are latched, while previously latched values of P0.5...P0.2 are cleared. 17.5 - RSTOUT Pin and Bidirectional Reset The RSTOUT pin is driven active (low level) at the beginning of any reset sequence (synchronous/ asynchronous hardware, software and watchdog timer resets). RSTOUT pin stays active low beyond the end of the initialization routine, until the protected EINIT instruction (End of Initialization) is completed. The Bidirectional Reset function is useful when external devices require a reset signal but cannot be connected to RSTOUT pin, because RSTOUT signal lasts during initialisation. It is, for instance, the case of external memory running initialization routine before the execution of EINIT instruction. Bidirectional reset function is enabled by setting bit 3 (BDRSTEN) in SYSCON register. It only can be enabled during the initialization routine, before EINIT instruction is completed.
131/186
ST10F280
When enabled, the open drain of the RSTIN pin is activated, pulling down the reset signal, for the duration of the internal reset sequence (synchronous/asynchronous hardware, software and watchdog timer resets). At the end of the internal reset sequence the pull down is released and the RSTIN pin is sampled 8 TCL periods later. - If signal is sampled low, a hardware reset is triggered again. - If it is sampled high, the chip exits reset state according to the running reset way (synchronous/ asynchronous hardware, software and watchdog timer resets ). Note: The bidirectional reset function is disabled by any reset sequence (Bit BDRSTEN of SYSCON is cleared). To be activated again it must be enabled during the initialization routine. 17.6 - Reset Circuitry The internal reset circuitry is described in Figure 68. An internal pull-up resistor is implemented on RSTIN pin. (50k minimum, to 250k maximum). The minimum reset time must be calculated using the lowest value. In addition, a programmable pull-down (bit BDRSTEN of SYSCON register) drives the RSTIN pin according to the internal reset state as explained in Section 17.5 RSTOUT Pin and Bidirectional Reset. The RSTOUT pin provides a signals to the application as described in Section 17.5 RSTOUT Pin and Bidirectional Reset. A weak internal pull-down is connected to the RPD pin to discharge external capacitor to Vss at a rate of 100A to 200A. This Pull-down is turned on when RSTIN pin is low If bit PWDCFG of SYSCON register is set, an internal pull-up resistor is activated at the end of the reset sequence. This pull-up charges the capacitor connected to RPD pin. If Bidirectional Reset function is not used, the simplest way to reset ST10F280 is to connect external components as shown in Figure 69. It works with reset from application (hardware or manual) and with power-on. The value of C1 capacitor, connected on RSTIN pin with internal pull-up resistor (50k to 250k), must lead to a charging time long enough to let the internal or external oscillator and / or the on-chip PLL to stabilize. The R0-C0 components on RPD pin are mainly implemented to provide a time delay to exit Power down mode (see Chapter 18 - Power Reduction Modes). Nervertheless, they drive RPD pin level during resets and they lead to different reset modes as explained hereafter. On power-on, C0 is totaly discharged, a low level on RPD pin forces an asynchronous hardware reset. C0 capacitor starts to charge throught R0 and at the end of reset sequence ST10F280 restarts. RPD pin threshold is typically 2.5V. Depending on the delay of the next applied reset, the MCU can enter a synchronous reset or an asynchronous reset. If RPD pin is below 2.5V an asynchronous reset starts, if RPD pin is above 2.5V a synchronous reset starts. (see Section 17.1 - Asynchronous Reset (Long Hardware Reset) and Section 17.2 - Synchronous Reset (Warm Reset)). Note that an internal pull-down is connected to RPD pin and can drive a 100A to 200A current. This Pull-down is turned on when RSTIN pin is low. In order to properly use the Bidirectional reset features, the schematic (or equivalent) of Figure 70 must be implemented. R1-C1 only work for power-on or manual reset in the same way as explained previously. D1 diode brings a faster discharge of C1 capacitor at power-off during repetitive switch-on / switch-off sequences. D2 diode performs an OR-wired connection, it can be replaced with an open drain buffer. R2 resistor may be added to increase the pull-up current to the open drain in order to get a faster rise time on RSTIN pin when bidirectional function is activated. The start-up configurations and some system features are selected on reset sequences as described in Table 33 and Table 34. Table 33 describes what is the system configuration latched on PORT0 in the five different reset ways. Table 34 summarizes the bit state of PORT0 latched in RP0H, SYSCON, BUSCON0 registers. RPOH register is described in Section 19.2 - System Configuration Registers.
UN D
132/186
ER
UP
DA TI NG
ST10F280
Figure 68 : Internal (simplified) Reset Circuitry.
EINIT Instruction Clr Set
Q
Reset State Machine Clock
Internal Reset Signal
Trigger Clr
DA TI NG
VCC SRST instruction watchdog overflow VCC
RSTOUT
RSTIN
BDRSTEN Reset Sequence (512 CPU Clock Cycles)
UP
Asynchronous Reset From/to Exit Powerdown Circuit
RPD
Weak pull-down (~200A)
Figure 69 : Minimum External Reset Circuitry
ER
RSTOUT RSTIN
External Hardware
+
UN D
ST10F280
C1
a) Manual Hardware Reset
b) For Automatic Power-up Reset and interruptible power-down mode
VDD R0 RPD
+
C0
133/186
ST10F280
Figure 70 : External Reset Hardware Circuitry
VDD
RSTOUT
R2
RSTIN
ST10F280
VDD R0 RPD
+
C0
Table 33 : PORT0 Latched Configuration for the Different Resets
P0H.6 Clock Options
P0L.1 Adapt Mode
X X X
I1 ADP X X
1 1
P0H.0 WR config.
- : Pin is not sampled
Software Reset
ER
Sample event
-
-
-
X X X X X
X X X X X
X X X X X
X X X X X
X X X X X
X X X X X
X X X X X
X X X
X X X
X X X
X X X
Watchdog Reset
-
-
-
Short Hardware Reset Long Hardware Reset Power-On Reset
-
-
-
X X
X X
X X
UN D
Table 34 : PORT0 bit latched into the different registers after reset
PORT0 bit nber PORT0 bit Name RP0H 2 h7 h6 h5 h4 h3 h2 CSSEL X1 X1 BUS ACT0 4 h1 CSSEL X1 BYTDIS 3 ALE CTL0 4 h0 WRC X1 X1 X1 I7 BUSTYP CLKCFG WRCFG BTYP X1
3
I6 BUSTYP CLKCFG X1 BTYP X1
I5 R
I4 BSL
I3 R
I2 R
CLKCFG X1 X1
1
CLKCFG X1 X1 X
1
CLKCFG X1 X1 X
1
SALSEL SALSEL X X X
1 1 1
EMU WRC X1 X1
X1 X1 -
CLKCFG SALSEL SALSEL X1 X
1
CSSEL CSSEL X1 X
1
SYSCON
X1 X
1
X1 X
1
BUSCON0
X
Internal Logic
To Clock Generator
To Port 4 Logic
To Port 6 Logic
X1
Internal
X1
X1
Internal Internal
Notes: 1. Not latched from PORT0. 2. Only RP0H low byte is used and the bit-fields are latched from PORT0 high byte to RP0H low byte. 3. Indirectly depend on PORT0. 4. Bits set if EA pin is 1.
134/186
P0L.0 Emu Mode
X X X
I0
X : Pin is sampled
UP
Segm. Addr. Lines Chip Selects P0H.5 P0H.4 P0H.3 P0H.2 P0H.1
P0L.5 Reserved
P0L.3 Reserved
P0L.2 Reserved
Bus Type
P0L.4 BSL
P0H.7
P0L.7
P0L.6
DA TI NG
External Hardware
VDD
D1
D2
R1
+
External Reset Source
C1
Open Drain Inverter
PORT0
ST10F280
18 - POWER REDUCTION MODES Two different power reduction modes with different levels of power reduction have been implemented in the ST10F280, which may be entered under software control. In Idle mode the CPU is stopped, while the peripherals continue their operation. Idle mode can be terminated by any reset or interrupt request. In Power Down mode both the CPU and the peripherals are stopped. Power Down mode can now be configured by software in order to be terminated only by a hardware reset or by a transition on enabled fast external interrupt pins. Note: All external bus actions are completed before Idle or Power Down mode is entered. However, Idle or Power Down mode is not entered if READY is enabled, but has not been activated (driven low for negative polarity, or driven high for positive polarity) during the last bus access. 18.1 - Idle Mode Idle mode is entered by running IDLE protected instruction. The CPU operation is stopped and the peripherals still run. Idle mode is terminate by any interrupt request. Whatever the interrupt is serviced or not, the instruction following the IDLE instruction will be SYSCON (FF12h / 89h)
15 14 STKSZ RW Bit PWDCFG 0 13 12 ROM S1 RW 11 SGT DIS RW 10 ROM EN RW 9 BYT DIS RW 8 CLK EN RW
executed after return from interrupt (RETI) instruction, then the CPU resumes the normal program. Note that a PEC transfer keep the CPU in Idle mode. If the PEC transfer does not succeed, the Idle mode is terminated. Watchdog timer must be properly programmed to avoid any disturbance during Idle mode. 18.2 - Power Down Mode Power Down mode starts by running PWRDN protected instruction. Internal clock is stopped, all MCU parts are on hold including the watchdog timer. There are two different operating Power Down modes : protected mode and interruptible mode. The internal RAM contents can be preserved through the voltage supplied via the VDD pins. To verify RAM integrity, some dedicated patterns may be written before entering the Power Down mode and have to be checked after Power Down is resumed. It is mandatory to keep VDD = +5V 10% during power-down mode, because the on-chip voltage regulator is turned in power saving mode and it delivers 2.5V to the core logic, but it must be supplied at nominal VDD = +5V. SFR
7 WR CFG RW 6 CS CFG RW Function 5 4 3
Reset Value: 0xx0h
2 1 VISI BLE RW 0 XPERSHARE RW PWD- OWD- BDR XPEN CFG DIS STEN RW RW RW RW
Power Down Mode Configuration Control Power Down Mode can only be entered during PWRDN instruction execution if NMI pin is low, otherwise the instruction has no effect. To exit Power Down Mode, an external reset must occurs by asserting the RSTIN pin. Power Down Mode can only be entered during PWRDN instruction execution if all enabled FastExternal Interrupt (EXxIN) pins are in their inactive level. Exiting this mode can be done by asserting one enabled EXxIN pin.
1
Note: Register SYSCON cannot be changed after execution of the EINIT instruction.
135/186
ST10F280
18.2.1 - Protected Power Down Mode This mode is selected by clearing the bit PWDCFG in register SYSCON to `0'. In this mode, the Power Down mode can only be entered if the NMI (Non Maskable Interrupt) pin is externally pulled low while the PWRDN instruction is executed. This feature can be used in conjunction with an external power failure signal which pulls the NMI pin low when a power failure is imminent. The microcontroller will enter the NMI trap routine which can save the internal state into RAM. After the internal state has been saved, the trap routine may set a flag or write a certain bit pattern into specific RAM locations, and then execute the PWRDN instruction. If the NMI pin is still low at this time, Power Down mode will be entered, otherwise program execution continues. During power down the voltage delivered by the on-chip voltage regulator automatically lowers the internal logic supply down to 2.5 V, saving the power while EXICON (F1C0h / E0h)
15 14 13 12 11 10 9 EXI7ES RW Bit EXIxES (x=7...0) EXI6ES RW EXI5ES RW
the contents of the internal RAM and all registers will still be preserved. Exiting Power Down Mode In this mode, the only way to exit Power Down mode is with an external hardware reset. The initialization routine (executed upon reset) can check the identification flag or bit pattern within RAM to determine whether the controller was initially switched on, or whether it was properly restarted from Power Down mode. 18.2.2 - Interruptable Power Down Mode This mode is selected by setting the bit bit PWDCFG in register SYSCON to `1'. In this mode, the Power Down mode can be entered if enabled Fast External Interrupt pins (EXxIN pins, alternate functions of Port 2 pins, with x = 7...0) are in their inactive level. This inactive level is configured with the EXIxES bit field in the EXICON register, as follow: Reset Value: 0000h
6 5 4 3 2 1 0 EXI3ES RW Function EXI2ES RW EXI1ES RW EXI0ES RW
ESFR
8 7 EXI4ES RW
External Interrupt x Edge Selection Field (x=7...0) 00 01 10 11 Fast external interrupts disabled: standard mode EXxIN pin not taken in account for entering/exiting Power Down mode. Interrupt on positive edge (rising) Enter Power Down mode if EXiIN = `0', exit if EXxIN = `1' (referred as `high' active level) Interrupt on negative edge (falling) Enter Power Down mode if EXiIN = `1', exit if EXxIN = `0' (referred as `low' active level) Interrupt on any edge (rising or falling) Always enter Power Down mode, exit if EXxIN level changed.
136/186
ST10F280
Exiting Power Down Mode When Power Down mode is entered, the CPU and peripheral clocks are frozen, and the oscillator and PLL are stopped. Power Down mode can be exited by either asserting RSTIN or one of the enabled EXxIN pin (Fast External Interrupt). RSTIN must be held low until the oscillator and PLL have stabilized. EXxIN inputs are normally sampled interrupt inputs. However, the Power Down mode circuitry uses them as level-sensitive inputs. An EXxIN (x = 7...0) Interrupt Enable bit (bit CCxIE in respective CCxIC register) need not to be set to bring the device out of Power Down mode. An external RC circuit must be connected, as shown in the following figure: Figure 71 : External RC Circuit on RPD Pin for Exiting Powerdown Mode with External Interrupt VDD
ST10F280
To exit Power Down mode with external interrupt, an EXxIN pin has to be asserted for at least 40 ns (x = 7...0). This signal enables the internal oscillator and PLL circuitry, and also turns on the weak pull-down (see following figure). The discharging of the external capacitor provides a delay that allows the oscillator and PLL circuits to stabilize before the internal CPU and Peripheral clocks are enabled. When the Vpp voltage drops below the threshold voltage (about 2.5 V), the Schmitt trigger clears Q2 flip-flop, thus enabling the CPU and Peripheral clocks, and the device resumes code execution. If the Interrupt was enabled (bit CCxIE='1' in the respective CCxIC register) before entering Power Down mode, the device executes the interrupt service routine, and then resumes execution after the PWRDN intruction (see note below). If the interrupt was disabled, the device executes the instruction following PWRDN instruction, and the Interrupt Request Flag (bit CCxIR in the respective CCxIC register) remains set until it is cleared by software. Note: Due to internal pipeline, the instruction that follows the PWRDN intruction is executed before the CPU performs a call of the interrupt service routine when exiting power-down mode.
R0 220k 1M Typical
RPD
+ C0 1F Typical
Figure 72 : Simplified Powerdown Exit Circuitry VDD
DQ Q1 cdQ Stop pll stop oscillator
VDD
Pull-up
Enter PowerDown
RPD
Weak Pull-down (~ 200A) External interrupt reset
VDD
DQ Q2 cdQ System clock CPU and Peripherals clocks
137/186
ST10F280
Figure 73 : Powerdown Exit Sequence when Using an External Interrupt (PLL x 2)
XTAL1 CPU clk internal Powerdown signal External Interrupt RPD ExitPwrd (internal) ~ 2.5 V
delay for oscillator/pll stabilization
138/186
ST10F280
19 - SPECIAL FUNCTION REGISTER OVERVIEW The following table lists all SFRs which are implemented in the ST10F280 in alphabetical order. Bit-addressable SFRs are marked with the letter "b" in column "Name". SFRs within the Extended SFR-Space (ESFRs) are marked with the letter "E" in column "Physical Address". An SFR can be specified by its individual mnemonic name. Depending on the selected addressing mode, an SFR can be accessed via its Table 35 : Special Function Registers Listed by Name
Name ADCIC ADCON ADDAT ADDAT2 ADDRSEL1 ADDRSEL2 ADDRSEL3 ADDRSEL4 ADEIC BUSCON0 BUSCON1 BUSCON2 BUSCON3 BUSCON4 CAPREL CC0 CC0IC CC1 CC1IC CC2 CC2IC CC3 CC3IC CC4 CC4IC CC5 CC5IC CC6 b b b b b b b b b b b b b b Physical address FF98h FFA0h FEA0h F0A0h FE18h FE1Ah FE1Ch FE1Eh FF9Ah FF0Ch FF14h FF16h FF18h FF1Ah FE4Ah FE80h FF78h FE82h FF7Ah FE84h FF7Ch FE86h FF7Eh FE88h FF80h FE8Ah FF82h FE8Ch E 8-bit address CCh D0h 50h 50h 0Ch 0Dh 0Eh 0Fh CDh 86h 8Ah 8Bh 8Ch 8Dh 25h 40h BCh 41h BDh 42h BEh 43h BFh 44h C0h 45h C1h 46h Description A/D Converter end of Conversion Interrupt Control Register A/D Converter Control Register A/D Converter Result Register A/D Converter 2 Result Register Address Select Register 1 Address Select Register 2 Address Select Register 3 Address Select Register 4 A/D Converter Overrun Error Interrupt Control Register Bus Configuration Register 0 Bus Configuration Register 1 Bus Configuration Register 2 Bus Configuration Register 3 Bus Configuration Register 4 GPT2 Capture/Reload Register CAPCOM Register 0 CAPCOM Register 0 Interrupt Control Register CAPCOM Register 1 CAPCOM Register 1 Interrupt Control Register CAPCOM Register 2 CAPCOM Register 2 Interrupt Control Register CAPCOM Register 3 CAPCOM Register 3 Interrupt Control Register CAPCOM Register 4 CAPCOM Register 4 Interrupt Control Register CAPCOM Register 5 CAPCOM Register 5 Interrupt Control Register CAPCOM Register 6 Reset value - - 00h 0000h 0000h 0000h 0000h 0000h 0000h 0000h - - 00h 0xx0h 0000h 0000h 0000h 0000h 0000h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h
physical address (using the Data Page Pointers), or via its short 8-bit address (without using the Data Page Pointers). The reset value is defined as following: X : Means the full nibble is not defined at reset. x : Means some bit of the nibble are not defined at reset.
139/186
ST10F280
Table 35 : Special Function Registers Listed by Name (continued)
Name CC6IC CC7 CC7IC CC8 CC8IC CC9 CC9IC CC10 CC10IC CC11 CC11IC CC12 CC12IC CC13 CC13IC CC14 CC14IC CC15 CC15IC CC16 CC16IC CC17 CC17IC CC18 CC18IC CC19 CC19IC CC20 CC20IC CC21 CC21IC CC22 CC22IC CC23 CC23IC CC24 b b b b b b b b b b b b b b b b b b Physical address FF84h FE8Eh FF86h FE90h FF88h FE92h FF8Ah FE94h FF8Ch FE96h FF8Eh FE98h FF90h FE9Ah FF92h FE9Ch FF94h FE9Eh FF96h FE60h F160h FE62h F162h FE64h F164h FE66h F166h FE68h F168h FE6Ah F16Ah FE6Ch F16Ch FE6Eh F16Eh FE70h E E E E E E E E 8-bit address C2h 47h C3h 48h C4h 49h C5h 4Ah C6h 4Bh C7h 4Ch C8h 4Dh C9h 4Eh CAh 4Fh CBh 30h B0h 31h B1h 32h B2h 33h B3h 34h B4h 35h B5h 36h B6h 37h B7h 38h Description CAPCOM Register 6 Interrupt Control Register CAPCOM Register 7 CAPCOM Register 7 Interrupt Control Register CAPCOM Register 8 CAPCOM Register 8 Interrupt Control Register CAPCOM Register 9 CAPCOM Register 9 Interrupt Control Register CAPCOM Register 10 CAPCOM Register 10 Interrupt Control Register CAPCOM Register 11 CAPCOM Register 11 Interrupt Control Register CAPCOM Register 12 CAPCOM Register 12 Interrupt Control Register CAPCOM Register 13 CAPCOM Register 13 Interrupt Control Register CAPCOM Register 14 CAPCOM Register 14 Interrupt Control Register CAPCOM Register 15 CAPCOM Register 15 Interrupt Control Register CAPCOM Register 16 CAPCOM Register 16 Interrupt Control Register CAPCOM Register 17 CAPCOM Register 17 Interrupt Control Register CAPCOM Register 18 CAPCOM Register 18 Interrupt Control Register CAPCOM Register 19 CAPCOM Register 19 Interrupt Control Register CAPCOM Register 20 CAPCOM Register 20 Interrupt Control Register CAPCOM Register 21 CAPCOM Register 21 Interrupt Control Register CAPCOM Register 22 CAPCOM Register 22 Interrupt Control Register CAPCOM Register 23 CAPCOM Register 23 Interrupt Control Register CAPCOM Register 24 Reset value - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h
140/186
ST10F280
Table 35 : Special Function Registers Listed by Name (continued)
Name CC24IC CC25 CC25IC CC26 CC26IC CC27 CC27IC CC28 CC28IC CC29 CC29IC CC30 CC30IC CC31 CC31IC CCM0 CCM1 CCM2 CCM3 CCM4 CCM5 CCM6 CCM7 CP CRIC CSP DP0L DP0H DP1L DP1H DP2 DP3 DP4 DP6 DP7 DP8 b b b b b b b b b b b b b b b b b b b b b b b b b b b Physical address F170h FE72h F172h FE74h F174h FE76h F176h FE78h F178h FE7Ah F184h FE7Ch F18Ch FE7Eh F194h FF52h FF54h FF56h FF58h FF22h FF24h FF26h FF28h FE10h FF6Ah FE08h F100h F102h F104h F106h FFC2h FFC6h FFCAh FFCEh FFD2h FFD6h E E E E E E E E E E E E 8-bit address B8h 39h B9h 3Ah BAh 3Bh BBh 3Ch BCh 3Dh C2h 3Eh C6h 3Fh CAh A9h AAh ABh ACh 91h 92h 93h 94h 08h B5h 04h 80h 81h 82h 83h E1h E3h E5h E7h E9h EBh Description CAPCOM Register 24 Interrupt Control Register CAPCOM Register 25 CAPCOM Register 25 Interrupt Control Register CAPCOM Register 26 CAPCOM Register 26 Interrupt Control Register CAPCOM Register 27 CAPCOM Register 27 Interrupt Control Register CAPCOM Register 28 CAPCOM Register 28 Interrupt Control Register CAPCOM Register 29 CAPCOM Register 29 Interrupt Control Register CAPCOM Register 30 CAPCOM Register 30 Interrupt Control Register CAPCOM Register 31 CAPCOM Register 31 Interrupt Control Register CAPCOM Mode Control Register 0 CAPCOM Mode Control Register 1 CAPCOM Mode Control Register 2 CAPCOM Mode Control Register 3 CAPCOM Mode Control Register 4 CAPCOM Mode Control Register 5 CAPCOM Mode Control Register 6 CAPCOM Mode Control Register 7 CPU Context Pointer Register GPT2 CAPREL Interrupt Control Register CPU Code Segment Pointer Register (read only) P0L Direction Control Register P0h Direction Control Register P1L Direction Control Register P1h Direction Control Register Port 2 Direction Control Register Port 3 Direction Control Register Port 4 Direction Control Register Port 6 Direction Control Register Port 7 Direction Control Register Port 8 Direction Control Register Reset value - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h - - 00h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h FC00h - - 00h 0000h - - 00h - - 00h - - 00h - - 00h 0000h 0000h - - 00h - - 00h - - 00h - - 00h
141/186
ST10F280
Table 35 : Special Function Registers Listed by Name (continued)
Name DPP0 DPP1 DPP2 DPP3 EXICON EXISEL IDCHIP IDMANUF IDMEM IDPROG IDX0 IDX1 MAH MAL MCW MDC MDH MDL MRW MSW ODP2 ODP3 ODP4 ODP6 ODP7 ODP8 ONES P0L P0H P1L P1H P2 P3 P4 P5 P6 b b b b b b b b b b b b b b b b b b b b b b b b Physical address FE00h FE02h FE04h FE06h F1C0h F1DAh F07Ch F07Eh F07Ah F078h FF08h FF0Ah FE5Eh FE5Ch FFDCh FF0Eh FE0Ch FE0Eh FFDAh FFDEh F1C2h F1C6h F1CAh F1CEh F1D2h F1D6h FF1Eh FF00h FF02h FF04h FF06h FFC0h FFC4h FFC8h FFA2h FFCCh E E E E E E E E E E E E 8-bit address 00h 01h 02h 03h E0h EDh 3Eh 3Fh 3Dh 3Ch 84h 85h 2Fh 2Eh EEh 87h 06h 07h EDh EFh E1h E3h E5h E7h E9h EBh 8Fh 80h 81h 82h 83h E0h E2h E4h D1h E6h Description CPU Data Page Pointer 0 Register (10-bit) CPU Data Page Pointer 1 Register (10-bit) CPU Data Page Pointer 2 Register (10-bit) CPU Data Page Pointer 3 Register (10-bit) External Interrupt Control Register External Interrupt Source Selection Register Device Identifier Register (n is the device revision) Manufacturer Identifier Register On-chip Memory Identifier Register Programming Voltage Identifier Register MAC Unit Address Pointer 0 MAC Unit Address Pointer 1 MAC Unit Accumulator - High Word MAC Unit Accumulator - Low Word MAC Unit Control Word CPU Multiply Divide Control Register CPU Multiply Divide Register - High Word CPU Multiply Divide Register - Low Word MAC Unit Repeat Word MAC Unit Status Word Port 2 Open Drain Control Register Port 3 Open Drain Control Register Port 4 Open Drain Control Register Port 6 Open Drain Control Register Port 7 Open Drain Control Register Port 8 Open Drain Control Register Constant Value 1's Register (read only) PORT0 Low Register (Lower half of PORT0) PORT0 High Register (Upper half of PORT0) PORT1 Low Register (Lower half of PORT1) PORT1 High Register (Upper half of PORT1) Port 2 Register Port 3 Register Port 4 Register (8-bit) Port 5 Register (read only) Port 6 Register (8-bit) Reset value 0000h 0001h 0002h 0003h 0000h 0000h 118nh 0401h 3080h 0040h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0200h 0000h 0000h - - 00h - - 00h - - 00h - - 00h FFFFh - - 00h - - 00h - - 00h - - 00h 0000h 0000h - - 00h XXXXh - - 00h
142/186
ST10F280
Table 35 : Special Function Registers Listed by Name (continued)
Name P7 P8 P5DIDIS POCON0L POCON0H POCON1L POCON1H POCON2 POCON3 POCON4 POCON6 POCON7 POCON8 POCON20 PECC0 PECC1 PECC2 PECC3 PECC4 PECC5 PECC6 PECC7 PICON PP0 PP1 PP2 PP3 PSW PT0 PT1 PT2 PT3 PW0 PW1 PW2 PW3 b b b b b Physical address FFD0h FFD4h FFA4h F080h F082h F084h F086h F088h F08Ah F08Ch F08Eh F090h F092h F0AAh FEC0h FEC2h FEC4h FEC6h FEC8h FECAh FECCh FECEh F1C4h F038h F03Ah F03Ch F03Eh FF10h F030h F032h F034h F036h FE30h FE32h FE34h FE36h E E E E E E E E E E E E E E E E E E E E 8-bit address E8h EAh D2h 40h 41h 42h 43h 44h 45h 46h 47h 48h 49h 55h 60h 61h 62h 63h 64h 65h 66h 67h E2h 1Ch 1Dh 1Eh 1Fh 88h 18h 19h 1Ah 1Bh 18h 19h 1Ah 1Bh Port 7 Register (8-bit) Port 8 Register (8-bit) Port 5 Digital Disable Register PORT0 Low Outpout Control Register (8-bit) PORT0 High Output Control Register (8-bit) PORT1 Low Output Control Register (8-bit) PORT1 High Output Control Register (8-bit) Port2 Output Control Register Port3 Output Control Register Port4 Output Control Register (8-bit) Port6 Output Control Register (8-bit) Port7 Output Control Register (8-bit) Port8 Output Control Register (8-bit) ALE, RD, WR Output Control Register (8-bit) PEC Channel 0 Control Register PEC Channel 1 Control Register PEC Channel 2 Control Register PEC Channel 3 Control Register PEC Channel 4 Control Register PEC Channel 5 Control Register PEC Channel 6 Control Register PEC Channel 7 Control Register Port Input Threshold Control Register PWM Module Period Register 0 PWM Module Period Register 1 PWM Module Period Register 2 PWM Module Period Register 3 CPU Program Status Word PWM Module Up/Down Counter 0 PWM Module Up/Down Counter 1 PWM Module Up/Down Counter 2 PWM Module Up/Down Counter 3 PWM Module Pulse Width Register 0 PWM Module Pulse Width Register 1 PWM Module Pulse Width Register 2 PWM Module Pulse Width Register 3 Description Reset value - - 00h - - 00h 0000h - - 00h - - 00h - - 00h - - 00h 0000h 0000h - - 00h - - 00h - - 00h - - 00h - - 00h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h - - 00h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h
143/186
ST10F280
Table 35 : Special Function Registers Listed by Name (continued)
Name PWMCON0 PWMCON1 PWMIC QR0 QR1 QX0 QX1 RP0H S0BG S0CON S0EIC S0RBUF S0RIC S0TBIC S0TBUF S0TIC SP SSCBR SSCCON SSCEIC SSCRB SSCRIC SSCTB SSCTIC STKOV STKUN SYSCON T0 T01CON T0IC T0REL T1 T1IC T1REL T2 T2CON b b b b b b b b b b b b b b b b b b Physical address FF30h FF32h F17Eh F004h F006h F000h F002h F108h FEB4h FFB0h FF70h FEB2h FF6Eh F19Ch FEB0h FF6Ch FE12h F0B4h FFB2h FF76h F0B2h FF74h F0B0h FF72h FE14h FE16h FF12h FE50h FF50h FF9Ch FE54h FE52h FF9Eh FE56h FE40h FF40h E E E E E E E E E E 8-bit address 98h 99h BFh 02h 03h 00h 01h 84h 5Ah D8h B8h 59h B7h CEh 58h B6h 09h 5Ah D9h BBh 59h BAh 58h B9h 0Ah 0Bh 89h 28h A8h CEh 2Ah 29h CFh 2Bh 20h A0h Description PWM Module Control Register 0 PWM Module Control Register 1 PWM Module Interrupt Control Register MAC Unit Offset Register QR0 MAC Unit Offset Register QR1 MAC Unit Offset Register QX0 MAC Unit Offset Register QX1 System Start-up Configuration Register (read only) Serial Channel 0 Baud Rate Generator Reload Register Serial Channel 0 Control Register Serial Channel 0 Error Interrupt Control Register Serial Channel 0 Receive Buffer Register (read only) Serial Channel 0 Receive Interrupt Control Register Serial Channel 0 Transmit Buffer Interrupt Control Register Serial Channel 0 Transmit Buffer Register (write only) Serial Channel 0 Transmit Interrupt Control Register CPU System Stack Pointer Register SSC Baud Rate Register SSC Control Register SSC Error Interrupt Control Register SSC Receive Buffer (read only) SSC Receive Interrupt Control Register SSC Transmit Buffer (write only) SSC Transmit Interrupt Control Register CPU Stack Overflow Pointer Register CPU Stack Underflow Pointer Register CPU System Configuration Register CAPCOM Timer 0 Register CAPCOM Timer 0 and Timer 1 Control Register CAPCOM Timer 0 Interrupt Control Register CAPCOM Timer 0 Reload Register CAPCOM Timer 1 Register CAPCOM Timer 1 Interrupt Control Register CAPCOM Timer 1 Reload Register GPT1 Timer 2 Register GPT1 Timer 2 Control Register Reset value 0000h 0000h - - 00h 0000h 0000h 0000h 0000h - - XXh 0000h 0000h - - 00h - - XXh - - 00h - - 00h 0000h - - 00h FC00h 0000h 0000h - - 00h XXXXh - - 00h 0000h - - 00h FA00h FC00h 0xx0h 1) 0000h 0000h - - 00h 0000h 0000h - - 00h 0000h 0000h 0000h
144/186
ST10F280
Table 35 : Special Function Registers Listed by Name (continued)
Name T2IC T3 T3CON T3IC T4 T4CON T4IC T5 T5CON T5IC T6 T6CON T6IC T7 T78CON T7IC T7REL T8 T8IC T8REL TFR WDT WDTCON XP0IC XP1IC XP2IC XP3IC XPERCON ZEROS b b b b b b b b b b b b b b b b b b b Physical address FF60h FE42h FF42h FF62h FE44h FF44h FF64h FE46h FF46h FF66h FE48h FF48h FF68h F050h FF20h F17Ah F054h F052h F17Ch F056h FFACh FEAEh FFAEh F186h F18Eh F196h F19Eh F024h FF1Ch E E E E E E E E E E E 8-bit address B0h 21h A1h B1h 22h A2h B2h 23h A3h B3h 24h A4h B4h 28h 90h BEh 2Ah 29h BFh 2Bh D6h 57h D7h C3h C7h CBh CFh 12h 8Eh Description GPT1 Timer 2 Interrupt Control Register GPT1 Timer 3 Register GPT1 Timer 3 Control Register GPT1 Timer 3 Interrupt Control Register GPT1 Timer 4 Register GPT1 Timer 4 Control Register GPT1 Timer 4 Interrupt Control Register GPT2 Timer 5 Register GPT2 Timer 5 Control Register GPT2 Timer 5 Interrupt Control Register GPT2 Timer 6 Register GPT2 Timer 6 Control Register GPT2 Timer 6 Interrupt Control Register CAPCOM Timer 7 Register CAPCOM Timer 7 and 8 Control Register CAPCOM Timer 7 Interrupt Control Register CAPCOM Timer 7 Reload Register CAPCOM Timer 8 Register CAPCOM Timer 8 Interrupt Control Register CAPCOM Timer 8 Reload Register Trap Flag Register Watchdog Timer Register (read only) Watchdog Timer Control Register CAN1 Module Interrupt Control Register CAN2 Module Interrupt Control Register XPWM Interrupt Control Register PLL unlock Interrupt Control Register XPER Configuration Register Constant Value 0's Register (read only) Reset value - - 00h 0000h 0000h - - 00h 0000h 0000h - - 00h 0000h 0000h - - 00h 0000h 0000h - - 00h 0000h 0000h - - 00h 0000h 0000h - - 00h 0000h 0000h 0000h 00xxh 2) - - 00h 3) - - 00h 3) - - 00h 3) - - 00h 3) - - 05h 0000h
Notes: 1. The system configuration is selected during reset. 2. Bit WDTR indicates a watchdog timer triggered reset. 3. The XPnIC Interrupt Control Registers control interrupt requests from integrated X-Bus peripherals. Some software controlled interrupt requests may be generated by setting the XPnIR bits (of XPnIC register) of the unused X-peripheral nodes.
145/186
ST10F280
Table 36 : X Registers Listed by Name
Name CAN1BTR CAN1CSR CAN1GMS CAN1IR CAN1LAR1--15 CAN1LGML CAN1LMLM CAN1MCR1--15 CAN1MO1--15 CAN1UAR1--15 CAN1UGML CAN1UMLM CAN2BTR CAN2CSR CAN2GMS CAN2IR CAN2LAR1--15 CAN2LGML CAN2LMLM CAN2MCR1--15 CAN2MO1--15 CAN2UAR1--15 CAN2UGML CAN2UMLM XADCMUX XDP9 XDP9CLR XDP9SET XODP9 XODP9CLR XODP9SET XP10 XP10DIDIS XP9 XP9CLR XP9SET 146/186 Physical address EF04h EF00h EF06h EF02h EF14--EFF4h EF0Ah EF0Eh EF10--EFF0h EF1x--EFFxh EF12--EFF2h EF08h EF0Ch EE04h EE00h EE06h EE02h EE14--EEF4h EE0Ah EE0Eh EE10--EEF0h EE1x--EEFxh EE12--EEF2h EE08h EE0Ch C384h C200h C204h C202h C300H C304H C302H C380h C382h C100h C104h C102h Description CAN1 Bit Timing Register CAN1 Control/Status Register CAN1 Global Mask Short CAN1 Interrupt Register CAN1 Lower Arbitration register 1 to 15 CAN1 Lower Global Mask Long CAN1 Lower Mask Last Message CAN1 Message Control Register 1 to 15 CAN1 Message Object 1 to 15 CAN1 Upper Arbitration Register 1 to 15 CAN1 Upper Global Mask Long CAN1 Upper Mask Last Message CAN2 Bit Timing Register CAN2 Control/Status Register CAN2 Global Mask Short CAN2 Interrupt Register CAN2 Lower Arbitration register 1 to 15 CAN2 Lower Global Mask Long CAN2 Lower Mask Last Message CAN2 Message Control Register 1 to 15 CAN2 Message Object 1 to 15 CAN2 Upper Arbitration Register 1 to 15 CAN2 Upper Global Mask Long CAN2 Upper Mask Last Message Port5 or PortX10 ADC Input Selection (Read / Write) Direction Register Xport9 (Read / Write) Bit Clear Direction Register Xport9 (Write only) Bit Set Direction Register Xport9 (Write only) Open Drain Control Register Xport9 (Read / Write) Bit clear Open drain Control register Xport9 (Write only) Bit Set Open Drain Control Register Xport9 (Write only) Read only Data register Xport10 (Read only) Xport10 Schmitt Trigger Input Selection (Read / Write) Data Register Xport9 (Read / Write) Bit Clear Data Register Xport9 (Write only) Bit Set Data Register Xport9 (Write only) Reset value XXXXh XX01h XFXXh - - XXh XXXXh XXXXh XXXXh XXXXh XXXXh XXXXh XXXXh XXXXh XXXXh XX01h XFXXh - - XXh XXXXh XXXXh XXXXh XXXXh XXXXh XXXXh XXXXh XXXXh 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h
ST10F280
Name XPOLAR XPP0 XPP1 XPP2 XPP3 XPT0 XPT1 XPT2 XPT3 XPW0 XPW1 XPW2 XPW3 XPWMCON0 XPWMCON1 XTCR XTCVR XTEVR XTSVR
Physical address EC04h EC20h EC22h EC24H EC26h EC10h EC12h EC14h EC16h EC30h EC32h EC34h EC36h EC00h EC02h C000h C006h C004h C002h
Description XPWM Channel Polarity Control Register XPWM Period Register 0 XPWM Period Register 1 XPWM Period Register 2 XPWM Period Register 3 XPWM Timer Counter Register 0 XPWM Timer Counter Register 1 XPWM Timer Counter Register 2 XPWM Timer Counter Register 3 XPWM Pulse Width Register 0 XPWM Pulse Width Register 1 XPWM Pulse Width Register 2 XPWM Pulse Width Register 3 XPWM Control Register 0 XPWM Control Register 1 Xtimer Control Register (Read / Write) Xtimer Current Value Register (Read / Write) Xtimer End Value Register (Read / Write) Xtimer Start Value Register (Read / Write)
Reset value 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h 0000h
147/186
ST10F280
19.1 - Identification Registers The ST10F280 has four Identification registers, mapped in ESFR space. These register contain: - A manufacturer identifier, - A chip identifier, with its revision, - A internal memory and size identifier and programming voltage description. IDMANUF (F07Eh / 3Fh) 1
15 14 13 12 11 10 MANUF R MANUF Manufacturer Identifier 020h: STMicroelectronics Manufacturer (JTAG worldwide normalisation). 9
ESFR
8 7 6 5 4 0 3 0
Reset Value: 0401h
2 0 1 0 0 1
IDCHIP (F07Ch / 3Eh) 1
15 14 13 12 11 10 CHIPID R 9
ESFR
8 7 6 5 4 3
Reset Value: 118Xh
2 REVID R 1 0
REVID CHIPID
Device Revision Identifier Device Identifier 118h: ST10F280 identifier. ESFR
11 10 9 8 7 6 MEMSIZE R 5 4 3
IDMEM (F07Ah / 3Dh) 1
15 14 MEMTYP R 13 12
Reset Value: 3080h
2 1 0
MEMSIZE MEMTYP
Internal Memory Size is calculated using the following formula: Size = 4 x [MEMSIZE] (in K Byte) 080h for ST10F280 (512K Byte) Internal Memory Type 3h for ST10F280 (Flash memory). ESFR
11 10 9 8 7 6 5 4 PROGVDD R 3
IDPROG (F078h / 3Ch) 1
15 14 13 12 PROGVPP R
Reset Value: 0040h
2 1 0
PROGVDD
Programming VDD Voltage VDD voltage when programming EPROM or FLASH devices is calculated using the following formula: VDD = 20 x [PROGVDD] / 256 (volts) 40h for ST10F280 (5V). Programming VPP Voltage (no need of external VPP) 00h
PROGVPP
Note : 1. All identification words are read only registers.
148/186
ST10F280
19.2 - System Configuration Registers The ST10F280 has registers used for different configuration of the overall system. These registers are described below. SYSCON (FF12h / 89h)
15 14 13
STKSZ
SFR
10 9 8 7 6 5
PWD CFG
Reset Value: 0xx0h
4
OWD DIS
12
11
3
BDR STEN
2
1
0
XPERSHARE
ROMS1 SGTDIS ROMEN BYTDIS CLKEN WRCFG CSCFG
XPEN VISIBLE
RW
RW
RW
RW1
RW1
RW
RW1
RW
RW
RW
RW
RW
RW
RW
Notes: 1. These bit are set directly or indirectly according to PORT0 and EA pin configuration during reset sequence. 2. Register SYSCON cannot be changed after execution of the EINIT instruction.
XPER-SHARE
XBUS Peripheral Share Mode Control `0': External accesses to XBUS peripherals are disabled `1': XBUS peripherals are accessible via the external bus during hold mode
VISIBLE
Visible Mode Control `0': Accesses to XBUS peripherals are done internally `1': XBUS peripheral accesses are made visible on the external pins
XPEN
XBUS Peripheral Enable bit `0': Accesses to the on-chip X-Peripherals and XRAM are disabled `1': The on-chip X-Peripherals are enabled.
BDRSTEN
Bidirectional Reset Enable `0': RSTIN pin is an input pin only. (SW Reset or WDT Reset have no effect on this pin) `1': RSTIN pin is a bidirectional pin. This pin is pulled low during 1024 TCL during reset sequence.
OWDDIS
Oscillator Watchdog Disable Control `0': Oscillator Watchdog (OWD) is enabled. If PLL is bypassed, the OWD monitors XTAL1 activity. If there is no activity on XTAL1 for at least 1 s, the CPU clock is switched automatically to PLL's base frequency (2 to 10MHz). `1': OWD is disabled. If the PLL is bypassed, the CPU clock is always driven by XTAL1 signal. The PLL is turned off to reduce power supply current.
PWDCFG
Power Down Mode Configuration Control `0': Power Down Mode can only be entered during PWRDN instruction execution if NMI pin is low, otherwise the instruction has no effect. Exit power down only with reset. `1': Power Down Mode can only be entered during PWRDN instruction execution if all enabled fast external interrupt EXxIN pins are in their inactive level. Exiting this mode can be done by asserting one enabled EXxIN pin or with external reset.
CSCFG
Chip Select Configuration Control `0': Latched Chip Select lines: CSx change 1 TCL after rising edge of ALE `1': Unlatched Chip Select lines: CSx change with rising edge of ALE.
WRCFG
Write Configuration Control (Inverted copy of bit WRC of RP0H) `0': Pins WR and BHE retain their normal function `1': Pin WR acts as WRL, pin BHE acts as WRH.
CLKEN
System Clock Output Enable (CLKOUT) `0': CLKOUT disabled: pin may be used for general purpose I/O `1': CLKOUT enabled: pin outputs the system clock signal.
149/186
ST10F280
BYTDIS
Disable/Enable Control for Pin BHE (Set according to data bus width) `0': Pin BHE enabled `1': Pin BHE disabled, pin may be used for general purpose I/O.
ROMEN
Internal Memory Enable (Set according to pin EA during reset) `0': Internal Memory disabled: accesses to the Memory area use the external bus `1': Internal Memory enabled.
SGTDIS
Segmentation Disable/Enable Control `0': Segmentation enabled (CSP is saved/restored during interrupt entry/exit) `1': Segmentation disabled (Only IP is saved/restored).
ROMS1
Internal Flash Memory Mapping `0': Internal Flash Memory area mapped to segment 0 (00'0000H...00'7FFFH) `1': Internal Flash Memory area mapped to segment 1 (01'0000H...01'7FFFH).
STKSZ
System Stack Size Selects the size of the system stack (in the internal RAM) from 32 to 1024 words.
Table 37 : Stack Size Selection
000b 001b 010b 011b 100b 101b 110b 111b Stack Size (Words) 256 128 64 32 512 1024 Internal RAM Addresses (Words) of Physical Stack 00'FBFEh...00'FA00h (Default after Reset) 00'FBFEh...00'FB00h 00'FBFEh...00'FB80h 00'FBFEh...00'FBC0h 00'FBFEh...00'F800h (not for 1K Byte IRAM) Reserved. Do not use this combination Reserved. Do not use this combination 00'FDFEh...00'FX00h (Note: No circular stack) 00'FX00h represents the lower IRAM limit, i.e. 1K Byte: 00'FA00h, 2K Byte: 00'F600h, 3K Byte: 00'F200h Significant Bits of Stack Pointer SP SP.8...SP.0 SP.7...SP.0 SP.6...SP.0 SP.5...SP.0 SP.9...SP.0 SP.11...SP.0
BUSCON0 (FF0Ch / 86h)
15
CSWEN0 RW
SFR
12
RW
Reset Value: 0xx0h
9 8
-
14
RW
13
RW
11
-
10
RW2
7
6
5
RW
4
RW
3
2
1
0
CSREN0 RDYPOL0 RDYEN0
BUS ACT0 ALE CTL0 RW2
BTYP RW1
MTTC0 RWDC0
MCTC RW
BUSCON1 (FF14h / 8Ah)
15 CSWEN1 RW 14 RW 13 RW 12 RW 11 10 BUSACT1 RW CSREN1 RDYPOL1 RDYEN1
SFR
9 ALECTL1 RW 8 7 RW 6 5 RW BTYP
Reset Value: 0000h
4 RW 3 2 1 RW 0 MTTC1 RWDC1 MCTC
BUSCON2 (FF16h / 8Bh)
15 CSWEN2 RW 14 RW 13 RW 12 RW 11 10 BUSACT2 RW CSREN2 RDYPOL2 RDYEN2
SFR
9 ALECTL2 RW 8 7 RW 6 5 RW BTYP
Reset Value: 0000h
4 RW 3 2 1 RW 0 MTTC2 RWDC2 MCTC
BUSCON3 (FF18h / 8Ch)
15 CSWEN3 RW 14 RW 13 RW 12 RW 11 10 BUSACT3 RW CSREN3 RDYPOL3 RDYEN3
SFR
9 ALECTL3 RW 8 7 RW 6 5 RW BTYP
Reset Value: 0000h
4 RW 3 2 1 RW 0 MTTC3 RWDC3 MCTC
150/186
ST10F280
BUSCON4 (FF1Ah / 8Dh)
15 CSWEN4 RW 14 RW 13 RW 12 RW 11 10 BUSACT4 RW CSREN4 RDYPOL4 RDYEN4
SFR
9 ALECTL4 RW 8 7 RW 6 5 RW BTYP
Reset Value: 0000h
4 RW 3 2 1 RW 0 MTTC4 RWDC4 MCTC
Notes: 1. BTYP (bit 6 and 7) are set according to the configuration of the bit l1 and l2 of PORT0 latched at the end of the reset sequence. 2. BUSCON0 is initialized with 0000h, if EA pin is high during reset. If EA pin is low during reset, bit BUSACT0 and ALECTRL0 are set ('1') and bit field BTYP is loaded with the bus configuration selected via PORT0.
MCTC
Memory Cycle Time Control (Number of memory cycle time wait states) 0 0 0 0: 15 wait states (Nber = 15 [MCTC]) ... 1 1 1 1: No wait states
RWDCx
Read/Write Delay Control for BUSCONx `0': With read/write delay: activate command 1 TCL after falling edge of ALE `1': No read/write delay: activate command with falling edge of ALE
MTTCx
Memory Tristate Time Control `0': 1 wait state `1': No wait state
BTYP
External Bus Configuration 0 0: 8-bit Demultiplexed Bus 0 1: 8-bit Multiplexed Bus 1 0: 16-bit Demultiplexed Bus 1 1: 16-bit Multiplexed Bus Note: For BUSCON0, BTYP bit-field is defined via PORT0 during reset.
ALECTLx
ALE Lengthening Control `0': Normal ALE signal `1': Lengthened ALE signal
BUSACTx
Bus Active Control `0': External bus disabled `1': External bus enabled (within the respective address window, see ADDRSEL)
RDYENx
READY Input Enable `0': External bus cycle is controlled by bit field MCTC only `1': External bus cycle is controlled by the READY input signal
RDYPOLx
Ready Active Level Control `0': Active level on the READY pin is low, bus cycle terminates with a `0' on READY pin, `1': Active level on the READY pin is high, bus cycle terminates with a `1' on READY pin.
CSRENx
Read Chip Select Enable `0': The CS signal is independent of the read command (RD) `1': The CS signal is generated for the duration of the read command
CSWENx
Write Chip Select Enable `0': The CS signal is independent of the write command (WR,WRL,WRH) `1': The CS signal is generated for the duration of the write command
151/186
ST10F280
RP0H (F108h / 84h)
15 14 13 12 11 10 9 -
ESFR
8 7 6 CLKSEL R
1- 2
Reset Value: - - XXH
5 4 3 2 1 0 WRC R2
SALSEL R
2
CSSEL R
2
WRC 2
Write Configuration Control `0': Pin WR acts as WRL, pin BHE acts as WRH `1': Pins WR and BHE retain their normal function
CSSEL
2
Chip Select Line Selection (Number of active CS outputs) 0 0: 3 CS lines: CS2...CS0 0 1: 2 CS lines: CS1...CS0 1 0: No CS lines at all 1 1: 5 CS lines: CS4...CS0 (Default without pull-downs)
SALSEL 2
Segment Address Line Selection (Number of active segment address outputs) 0 0: 4-bit segment address: A19...A16 0 1: No segment address lines at all 1 0: 8-bit segment address: A23...A16 1 1: 2-bit segment address: A17...A16 (Default without pull-downs)
CLKSEL
1-2
System Clock Selection 000: fCPU = 2.5 x fOSC 001: fCPU = 0.5 x fOSC 010: fCPU = 10 x fOSC 011: fCPU = fOSC 100: fCPU = 5 x fOSC 101: fCPU = 2 x fOSC 110: fCPU = 3 x fOSC 111: fCPU = 4 x fOSC
Notes: 1. RP0H.7 to RP0H.5 bits are loaded only during a long hardware reset. As pull-up resistors are active on each Port P0H pins during reset, RP0H default value is "FFh". 2. These bits are set according to Port 0 configuration during any reset sequence.
EXICON (F1C0h / E0h )
15 14 13 12 11 10 9
ESFR
8 7 6 5 4 3
Reset Value: 0000h
2 1 0
EXI7ES RW EXIxES(x=7...0)
EXI6ES RW
EXI5ES RW
EXI4ES RW
EXI3ES RW
EXI2ES RW
EXI1ES RW
EXI0ES RW
External Interrupt x Edge Selection Field (x=7...0) 0 0: 0 1: 1 0: 1 1: Fast external interrupts disabled: standard mode EXxIN pin not taken in account for entering/exiting Power Down mode. Interrupt on positive edge (rising) Enter Power Down mode if EXiIN = `0', exit if EXxIN = `1' (referred as `high' active level) Interrupt on negative edge (falling) Enter Power Down mode if EXiIN = `1', exit if EXxIN = `0' (referred as `low' active level) Interrupt on any edge (rising or falling) Always enter Power Down mode, exit if EXxIN level changed.
152/186
ST10F280
EXISEL (F1DAh / EDh)
15 14 13 12 11 10 9
ESFR
8 7 6 5 4 3
Reset Value: 0000h
2 1 0
EXI7SS RW EXIxSS
EXI6SS RW
EXI5SS RW
EXI4SS RW
EXI3SS RW
EXI2SS RW
EXI1SS RW
EXI0SS RW
External Interrupt x Source Selection (x=7...0) `00': `01': `10': `11': EXIxSS 0 1 2...7 Input from associated Port 2 pin. Input from "alternate source". Input from Port 2 pin ORed with "alternate source". Input from Port 2 pin ANDed with "alternate source". Port 2 pin P2.8 P2.9 P2.10...15 Alternate Source CAN1_RxD CAN2_RxD Not used (zero)
XP3IC (F19Eh / CFh) 1
15 14
-
ESFR
11 10
-
Reset Value: - - 00h
6 5 4 3 2 1 GLVL RW 0
13 -
12
-
9 -
8
-
7
XP3IR XP3IE RW RW
XP3ILVL RW
Note: 1. XP3IC register has the same bit field as xxIC interrupt registers
xxIC (yyyyh / zzh)
15 14 13 12 11 10 9 -
SFR Area
8 7 xxIR RW 6 xxIE RW 5 4 ILVL RW 3
Reset Value: - - 00h
2 1 GLVL RW 0
Bit GLVL Group Level
Function
Defines the internal order for simultaneous requests of the same priority. 3: Highest group priority 0: Lowest group priority ILVL Interrupt Priority Level Defines the priority level for the arbitration of requests. Fh: Highest priority level 0h: Lowest priority level xxIE Interrupt Enable Control Bit (individually enables/disables a specific source) `0': Interrupt Request is disabled `1': Interrupt Request is enabled xxIR Interrupt Request Flag `0': No request pending `1': This source has raised an interrupt request
153/186
ST10F280
XPERCON (F024h / 12h)
15
-
ESFR
9
-
Reset Value: - - 05h
3
XPERCONEN3
14
-
13
-
12
-
11
-
10
-
8
-
7
-
6
-
5
-
4
XPWMEN
2
XRAMEN
1
CAN2EN
0
CAN1EN
RW Bit CAN1EN 0 CAN1 Enable Bit Function
RW
RW
RW
RW
Accesses to the on-chip CAN1 XPeripheral and its functions are disabled. P4.5 and P4.6 pins can be used as general purpose I/Os. Address range 00'EF00h-00'EFFFh is only directed to external memory if CAN2EN and XPWM bits are cleared also. The on-chip CAN1 XPeripheral is enabled and can be accessed. CAN2 Enable Bit Accesses to the on-chip CAN2 XPeripheral and its functions are disabled. P4.4 and P4.7 pins can be used as general purpose I/Os. Address range 00'EE00h-00'EEFFh is only directed to external memory if CAN1EN and XPWM bits are cleared also. The on-chip CAN2 XPeripheral is enabled and can be accessed. XRAM Enable Bit Accesses to the on-chip 16K Byte XRAM are disabled, external access performed. The on-chip 16K Byte XRAM is enabled and can be accessed. XPORT9,XTIMER, XPORT10, XADCMUX Enable Bit Accesses to the XPORT9, XTIMER, XPORT10, XADCMUX peripherals are disabled, external access performed. The on-chip XPORT9, XTIMER, XPORT10, XADCMUX peripherals are enabled and can be accessed. XPWM Enable Bit Accesses to the on-chip XPWM are disabled, external access performed. Address range 00'EC00h-00'ECFFh is only directed to external memory if CAN1EN and CAN2EN are `0' also The on-chip XPWM is enabled and can be accessed.
1 CAN2EN 0
1 XRAMEN 0 1 XPERCONEN3 0 1 XPWMEN 0 1
Note: - When both CAN and XPWM are disabled via XPERCON setting, then any access in the address range 00'EC00h 00'EFFFh will be directed to external memory interface, using the BUSCONx register corresponding to address matching ADDRSELx register. P4.4 and P4.7 can be used as General Purpose I/O when CAN2 is not enabled, and P4.5 and P4.6 can be used as General Purpose I/O when CAN1 is not enabled. - The default XPER selection after Reset is : XCAN1 is enabled, XCAN2 is disabled, XRAM is enabled, XPORT9, XTIMER, XPORT10, XPWM are disabled. - Register XPERCON cannot be changed after the global enabling of XPeripherals, i.e. after setting of bit XPEN in SYSCON register.
154/186
ST10F280
20 - ELECTRICAL CHARACTERISTICS 20.1 - Absolute Maximum Ratings
Symbol VDD VIO VAREF IOV ITOV Ptot TA Tstg Parameter Voltage on VDD pins with respect to ground1 Voltage on any pin with respect to ground1 Voltage on VAREF pin with respect to ground1 Input Current on any pin during overload condition1 Absolute Sum of all input currents during overload condition1 Power Dissipation1 Ambient Temperature under bias Storage Temperature1 Value -0.5, +6.5 -0.5, (VDD +0.5) -0.3, (VDD +0.3) -10, +10 |100 mA| 1.5 -40, +125 -65, +150 Unit V V V mA mA W C C
Note: 1. Stresses above those listed under "Absolute Maximum Ratings" may cause permanent damage to the device. This is a stress rating only and functional operation of the device at these or any other conditions above those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability. During overload conditions (VIN > VDD or VIN < VSS) the voltage on pins with respect to ground (VSS) must not exceed the values defined by the Absolute Maximum Ratings.
20.2 - Parameter Interpretation The parameters listed in the following tables represent the characteristics of the ST10F280 and its demands on the system. Where the ST10F280 logic provides signals with their respective timing characteristics, the symbol "CC" for Controller Characteristics, is included in the "Symbol" column. Where the external system must provide signals with their respective timing characteristics to the ST10F280, the symbol "SR" for System Requirement, is included in the "Symbol" column. 20.3 - DC Characteristics VDD = 5V 10%, VSS = 0V, fCPU = 40MHz, Reset active, TA = -40 to +125C
Symbol VIL VILS VIH VIH1 VIH2 VIHS HYS VOL VOL1 SR Input low voltage SR Input low voltage (special threshold) SR Input high voltage (all except RSTIN and XTAL1) Parameter Test Conditions - - - - - -
3
Min. -0.5 -0.5 0.2 VDD + 0.9 0.6 VDD 0.7 VDD 0.8 VDD - 0.2 400 - -
Max. 0.2 VDD - 0.1 2.0 VDD + 0.5 VDD + 0.5 VDD + 0.5 VDD + 0.5 - 0.45 0.45
Unit V V V V V V mV V V
SR Input high voltage RSTIN SR Input high voltage XTAL1 SR Input high voltage (special threshold) Input Hysteresis (special threshold) CC Output low voltage (PORT0, PORT1, Port 4, ALE, RD, WR, BHE, CLKOUT, RSTOUT) CC Output low voltage (all other outputs)
- IOL = 2.4mA IOL1 = 1.6mA
1
1
155/186
ST10F280
Symbol
Parameter
Test Conditions IOH = -500A IOH = -2.4mA IOH = - 250A IOH = - 1.6mA 0V < VIN < VDD 0V < VIN < VDD
3/4 3 5/6 5/7 5/6 5/7 5/6 5/7 5/6
Min. 0.9 VDD 2.4 0.9 VDD 2.4 - - -
Max. - - - - 0.2 1 5 250 -40 - - 500 -40 - -10 - 20 10
Unit
VOH
Output high voltage (PORT0, PORT1, Port4, 1 CC ALE, RD, WR, BHE, CLKOUT, RSTOUT)
1/2
V V V A A mA k A A A A A A A A A pF
VOH1
CC Output high voltage (all other outputs) CC Input leakage current (Port 5, XPort 10) CC Input leakage current (all other) SR Overload current CC RSTIN pull-up resistor Read / Write inactive current Read / Write active current ALE inactive current ALE active current Port 6 inactive current Port 6 active current
IOZ1 IOZ2 IOV
RRST IRWH IRWL IALEL IALEH IP6H IP6L IP0H
IP0L
IIL
CIO ICC
IID
IPD
Notes: 1. ST10F280 pins are equipped with low-noise output drivers which significantly improve the device's EMI performance. These low-noise drivers deliver their maximum current only until the respective target output level is reached. After this, the output current is reduced. This results in increased impedance of the driver, which attenuates electrical noise from the connected PCB tracks. The current specified in column "Test Conditions" is delivered in any cases. 2. This specification is not valid for outputs which are switched to open drain mode. In this case the respective output will float and the voltage results from the external circuitry. 3. Partially tested, guaranteed by design characterization. 4. Overload conditions occur if the standard operating conditions are exceeded, i.e. the voltage on any pin exceeds the specified range (i.e. VOV > VDD+0.5V or VOV <0.5V). The absolute sum of input overload currents on all port pins may not exceed 50mA. The supply voltage must remain within the specified limits.
156/186


- VOUT = 2.4V VOUT = VOLmax VOUT = VOLmax VOUT = 2.4V VOUT = 2.4V VOUT = VOL1max VIN = VIHmin VIN = VILmax 0V < VIN < VDD
50 - -500 40 - - -500 - -100 - -
PORT0 configuration current
5/7
CC XTAL1 input current CC Pin capacitance (digital inputs / outputs)
3/5
f = 1MHz, TA = 25C RSTIN = VIH1 fCPU in [MHz] RSTIN = VIH1 fCPU in [MHz] VDD = 5.5V TA = 55C
8
Power supply current
9
-
30 + 3.3 x fCPU mA
Idle mode supply current
10
-
20 + fCPU
mA
Power-down mode supply current
-
200
A
ST10F280
5. This specification is only valid during Reset, or during Hold-mode or Adapt-mode. Port 6 pins are only affected if they are used for CS output and if their open drain function is not enabled. 6. The maximum current may be drawn while the respective signal line remains inactive. 7. The minimum current must be drawn in order to drive the respective signal line active. 8. The power supply current is a function of the operating frequency. This dependency is illustrated in the Figure 74. These parameters are tested at VDDmax and 40MHz CPU clock with all outputs disconnected and all inputs at VIL or VIH. The chip is configured with a demultiplexed 16-bit bus, direct clock drive, 5 chip select lines and 2 segment address lines, EA pin is low during reset. After reset, PORT 0 is driven with the value `00CCh' that produces infinite execution of NOP instruction with 15 wait-state, R/ W delay, memory tristate wait state, normal ALE. Peripherals are not activated. 9. Idle mode supply current is a function of the operating frequency. This dependency is illustrated in the Figure 74. These parameters are tested at VDDmax and 40MHz CPU clock with all outputs disconnected and all inputs at VIL or VIH. 10. This parameter value includes leakage currents. With all inputs (including pins configured as inputs) at 0 V to 0.1V or at VDD - 0.1V to VDD, VREF = 0V, all outputs (including pins configured as outputs) disconnected.
Figure 74 : Supply / Idle Current as a Function of Operating Frequency
10
00 00000000 000 0000000 0000000 00000 000000000000 000000 000000 00000 00000 000000 000000 00000 00000 000000 000000 00000 000000 000000 00000 00000 000000 000000 00000 000000 000000 00000 00000 000000 000000 00000 000000 000000 00000 0000 000000 00000 00000000 00000000000 00000 000000 000000 000000 000000 00000 00000 00000 00000 000000 000000 000000 000000 00000 00000 00000 00000 000000 000000 000000 000000 00000 00000 00000 000000 000000 000000 000000 00000 0000
ICCmax ICCtyp IIDmax IIDtyp 10 20 30
300
I [mA]
162mA
70mA
40
fCPU [MHz]
157/186
ST10F280
20.3.1 - A/D Converter Characteristics VDD = 5V 10%, VSS = 0V, TA = -40 to +125C, 4.0V VAREF VDD + 0.1V; VSS0.1V VAGND VSS + 0.2V Table 38 : A/D Converter Characteristics
Limit Values Symbol VAREF VAIN IAREF SR SR CC Parameter Analog Reference voltage Analog input voltage Reference supply current running mode power-down mode ADC input capacitance Not sampling Sampling Sample time Conversion time Differential Nonlinearity Integral Nonlinearity Offset Error Total unadjusted error Internal resistance of analog source Coupling Factor between inputs
1-8 7
Test Condition minimum 4.0 VAGND - -
7
Unit maximum VDD + 0.1 VAREF 500 V V A A pF pF
1
10 15 1 536 TCL 2 884 TCL +0.5 +1.5 +1.0 +2.0 (tS / 150) - 0.25 1/500
CAIN
CC
- -
2-4 3-4 5 5 5 5
tS tC DNL INL OFS TUE RASRC K
CC CC CC CC CC CC SR CC
48 TCL 388 TCL -0.5 -1.5 -1.0 -2.0 [ns]
2-7
LSB LSB LSB LSB k
tS in 6-7
- -
Notes: 1. VAIN may exceed VAGND or VAREF up to the absolute maximum ratings. However, the conversion result in these cases will be X000h or X3FFh, respectively. 2. During the tS sample time the input capacitance Cain can be charged/discharged by the external source. The internal resistance of the analog source must allow the capacitance to reach its final voltage level within the tS sample time. After the end of the tS sample time, changes of the analog input voltage have no effect on the conversion result. Values for the tSC sample clock depend on the programming. Referring to the tC conversion time formula of section 20.3.2 and to the table 39 of page 156: - tS min = 2 tSC min = 2 tCC min = 2 x 24 x TCL = 48 TCL - tS max = 2 tSC max = 2 x 8 tCC max = 2 x 8 x 96 TCL = 1536 TCL TCL is defined in section 20.4.5 at page 159. 3. The conversion time formula is: - tC = 14 tCC + tS + 4 TCL (= 14 tCC + 2 tSC + 4 TCL) The tC parameter includes the tS sample time, the time for determining the digital result and the time to load the result register with the result of the conversion. Values for the tCC conversion clock depend on the programming. Referring to the table 39 of page 156: - tC min = 14 tCC min + tS min + 4 TCL = 14 x 24 x TCL + 48 TCL + 4 TCL = 388 TCL - tC max = 14 tCC max + tS max + 4 TCL = 14 x 96 TCL + 1536 TCL + 4 TCL = 2884 TCL 4. This parameter is fixed by ADC control logic. 5. DNL, INL, TUE are tested at VAREF = 5.0V, VAGND = 0V, VCC = 4.9V. It is guaranteed by design characterization for all other voltages within the defined voltage range. `LSB' has a value of VAREF / 1024. The specified TUE is guaranteed only if an overload condition (see IOV specification) occurs on maximum 2 not selected analog input pins and the absolute sum of input overload currents on all analog input pins does not exceed 10mA. 6. The coupling factor is measured on a channel while an overload condition occurs on the adjacent not selected channel with an absolute overload current less than 10mA. 7. Partially tested, guaranteed by design characterization. 8.To remove noise and undesirable high frequency components from the analog input signal, a low-pass filter must be connected at the ADC input. The cut-off frequency of this filter should avoid 2 opposite transitions during the ts sampling time of the ST10 ADC:
- fcut-off 1 / 5 ts to 1/10 ts where ts is the sampling time of the ST10 ADC and is not related to the Nyquist frequency determined by the tc conversion time.
158/186
ST10F280
20.3.2 - Conversion Timing Control When a conversion is started, first the capacitances of the converter are loaded via the respective analog input pin to the current analog input voltage. The time to load the capacitances is referred to as the sample time ts. Next the sampled voltage is converted to a digital value in 10 successive steps, which correspond to the 10-bit resolution of the ADC. The next 4 steps are used for equalizing internal levels (and are keep for exact timing matching with the 10-bit A/D converter module implemented in ST10F168). The current that has to be drawn from the sources for sampling and changing charges depends on the time that each respective step takes, because the capacitors must reach their final voltage level within the given time, at least with a certain approximation. The maximum current, however, that a source can deliver, depends on its internal resistance. The sample time tS (= 2 tSC) and the conversion time tC (= 14 tCC + 2 tSC + 4 TCL) can be programmed relatively to the ST10F280 CPU Table 39 : ADC Sampling and Conversion Timing
Conversion Clock tCC ADCTC TCL = 1/2 x fXTAL 00 01 10 11 TCL x 24 Reserved, do not use TCL x 96 TCL x 48 At fCPU = 40MHz 0.3s Reserved 1.2 s 0.6 s 00 01 10 11 ADSTC tSC = tCC tCC x 2 tCC x 4 tCC x 8 Sample Clock tSC At fCPU = 40MHz and ADCTC = 00 0.3s 0.6s 1.2s 2.4s
clock. This allows adjusting the A/D converter of the ST10F280 to the properties of the system: Fast Conversion can be achieved by programming the respective times to their absolute possible minimum. This is preferable for scanning high frequency signals. The internal resistance of analog source and analog supply must be sufficiently low, however. High Internal Resistance can be achieved by programming the respective times to a higher value, or the possible maximum. This is preferable when using analog sources and supply with a high internal resistance in order to keep the current as low as possible. However, the conversion rate in this case may be considerably lower. The conversion times are programmed via the upper four bit of register ADCON. Bit field ADCTC (conversion time control) selects the basic conversion clock tCC, used for the 14 steps of converting. The sample time tS is a multiple of this conversion time and is selected by bit field ADSTC (sample time control). The table below lists the possible combinations. The timings refer to the unit TCL, where fCPU = 1/2 TCL.
A complete conversion will take 14 tCC + 2 tSC + 4 TCL (fastest convertion rate = 4.85s at 40MHz). This time includes the conversion itself, the sample time and the time required to transfer the digital value to the result register.
159/186
ST10F280
20.4 - AC characteristics 20.4.1 - Test Waveforms Figure 75 : Input / Output Waveforms
2.4V 0.2VDD+0.9 Test Points 0.2VDD+0.9
0.45V
0.2VDD-0.1
0.2VDD-0.1
AC inputs during testing are driven at 2.4V for a logic `1' and 0.4V for a logic `0'. Timing measurements are made at VIH min for a logic `1' and VIL max for a logic `0'. Figure 76 : Float Waveforms
VOH VOH -0.1V Timing Reference Points VOL +0.1V VOL
VLoad +0.1V VLoad VLoad -0.1V
For timing purposes a port pin is no longer floating when VLOAD changes of 100mV. It begins to float when a 100mV change from the loaded VOH/VOL level occurs (IOH/IOL = 20mA). 20.4.2 - Definition of Internal Timing The internal operation of the ST10F280 is controlled by the internal CPU clock fCPU. Both edges of the CPU clock can trigger internal (for example pipeline) or external (for example bus cycles) operations. The specification of the external timing (AC Characteristics) therefore depends on the time between two consecutive edges of the CPU clock, called "TCL". The CPU clock signal can be generated by different mechanisms. The duration of TCL and its variation (and also the derived external timing) depends on the mechanism used to generate fCPU. This influence must be regarded when calculating the timings for the ST10F280. The example for PLL operation shown in Figure 77 refers to a PLL factor of 4.
160/186
ST10F280
The mechanism used to generate the CPU clock is selected during reset by the logic levels on pins P0.15-13 (P0H.7-5). Figure 77 : Generation Mechanisms for the CPU Clock
Phase locked loop operation fXTAL fCPU
TCL TCL
Direct Clock Drive fXTAL fCPU
TCL TCL
Prescaler Operation fXTAL fCPU
TCL TCL
20.4.3 - Clock Generation Modes The Table 40 associates the combinations of these three bit with the respective clock generation mode. Table 40 : CPU Frequency Generation
P0H.7 P0H.6 P0H.5 CPU Frequency fCPU = fXTAL x F External Clock Input Range1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 fXTAL x 4 fXTAL x 3 fXTAL x 2 fXTAL x 5 fXTAL x 1 fXTAL x 10 fXTAL x 0.5 fXTAL x 2.5 2.5 to 10MHz 3.33 to 13.33MHz 5 to 20MHz 2 to 8MHz 1 to 40MHz 1 to 4MHz 2 to 80MHz 4 to 16MHz CPU clock via prescaler3 Direct drive 2 4 Notes Default configuration
Notes: 1. The external clock input range refers to a CPU clock range of 1...40MHz. 2. The maximum depends on the duty cycle of the external clock signal. 3. The maximum input frequency is 25MHz when using an external crystal with the internal oscillator; providing that internal serial resistance of the crystal is less than 40. However, higher frequencies can be applied with an external clock source on pin XTAL1, but in this case, the input clock signal must reach the defined levels VIL and VIH2.. 4. The PLL free-running frequency is from 2 to 10MHz.
161/186
ST10F280
20.4.4 - Prescaler Operation When pins P0.15-13 (P0H.7-5) equal '001' during reset, the CPU clock is derived from the internal oscillator (input clock signal) by a 2:1 prescaler. The frequency of fCPU is half the frequency of fXTAL and the high and low time of fCPU (i.e. the duration of an individual TCL) is defined by the period of the input clock fXTAL. The timings listed in the AC Characteristics that refer to TCL therefore can be calculated using the period of fXTAL for any TCL. Note that if the bit OWDDIS in SYSCON register is cleared, the PLL runs on its free-running frequency and delivers the clock signal for the Oscillator Watchdog. If bit OWDDIS is set, then the PLL is switched off. 20.4.5 - Direct Drive When pins P0.15-13 (P0H.7-5) equal '011' during reset the on-chip phase locked loop is disabled and the CPU clock is directly driven from the internal oscillator with the input clock signal. The frequency of fCPU directly follows the frequency of fXTAL so the high and low time of fCPU (i.e. the duration of an individual TCL) is defined by the duty cycle of the input clock fXTAL. Therefor, the timings given in this chapter refer to the minimum TCL. This minimum value can be calculated by the following formula: TCL min = 1 f XTALl xlDC min DC = duty cycle For two consecutive TCLs, the deviation caused by the duty cycle of fXTAL is compensated, so the duration of 2 TCL is always 1/fXTAL. The minimum value TCLmin has to be used only once for timings that require an odd number of TCLs (1,3,...). Timings that require an even number of TCLs (2,4,...) may use the formula: 2TCL = 1 f Note: XTAL the Oscillator Watchdog. If bit OWDDIS is set, then the PLL is switched off. 20.4.6 - Oscillator Watchdog (OWD) An on-chip watchdog oscillator is implemented in the ST10F280. This feature is used for safety operation with external crystal oscillator (using direct drive mode with or without prescaler). This watchdog oscillator operates as following : The reset default configuration enables the watchdog oscillator. It can be disabled by setting the OWDDIS (bit 4) of SYSCON register. When the OWD is enabled, the PLL runs at its free-running frequency, and it increments the watchdog counter. The PLL free-running frequency is from 2 to 10MHz. On each transition of external clock, the watchdog counter is cleared. If an external clock failure occurs, then the watchdog counter overflows (after 16 PLL clock cycles). The CPU clock signal will be switched to the PLL free-running clock signal, and the oscillator watchdog Interrupt Request (XP3INT) is flagged. The CPU clock will not switch back to the external clock even if a valid external clock exits on XTAL1 pin. Only a hardware reset can switch the CPU clock source back to direct clock input. When the OWD is disabled, the CPU clock is always external oscillator clock and the PLL is switched off to decrease consumption supply current. 20.4.7 - Phase Locked Loop For all other combinations of pins P0.15-13 (P0H.7-5) during reset the on-chip phase locked loop is enabled and it provides the CPU clock (see Table 40). The PLL multiplies the input frequency by the factor F which is selected via the combination of pins P0.15-13 (fCPU = fXTAL x F). With every F'th transition of fXTAL the PLL circuit synchronizes the CPU clock to the input clock. This synchronization is done smoothly, so the CPU clock frequency does not change abruptly. Due to this adaptation to the input clock the frequency of fCPU is constantly adjusted so it is locked to fXTAL. The slight variation causes a jitter of fCPU which also effects the duration of individual TCLs. The timings listed in the AC Characteristics that refer to TCLs therefore must be calculated using the minimum TCL that is possible under the respective circumstances.
The address float timings in Multiplexed bus mode (t11 and t45) use the maximum duration of TCL (TCLmax = 1/fXTAL x DCmax) instead of TCLmin. If the bit OWDDIS in SYSCON register is cleared, the PLL runs on its free-running frequency and delivers the clock signal for
162/186
ST10F280
The real minimum value for TCL depends on the jitter of the PLL. The PLL tunes fCPU to keep it locked on fXTAL. The relative deviation of TCL is the maximum when it is refered to one TCL period. It decreases according to the formula and to the Figure 78 given below. For N periods of TCL the minimum value is computed using the corresponding deviation DN:
TCL MIN = TCL

DN x 1 - ------------NOM 100

D = ( 4 - N 15 ) [ % ] N
where N = number of consecutive TCL periods and 1 N 40. So for a period of 3 TCL periods (N = 3): D3 = 4 - 3/15 = 3.8% 3 TCLmin = 3 TCLNOM x (1 - 3.8/100) = 3 TCLNOM x 0.962 3 TCLmin = (36.075ns at fCPU = 40MHz) This is especially important for bus cycles using wait states and e.g. for the operation of timers, serial interfaces, etc. For all slower operations and longer periods (e.g. pulse train generation or measurement, lower Baud rates, etc.) the deviation caused by the PLL jitter is negligible.
Figure 78 : Approximated Maximum PLL Jitter Max.jitter [%] This approximated formula is valid for 1 N 40 and 10MHz fCPU 40MHz.
4 3 2 1 2 4 8 16 32
N
20.4.8 - External Clock Drive XTAL1 VDD = 5V 10%, VSS = 0V, TA = -40 to +125 C
fCPU = fXTAL Parameter Symbol min Oscillator period High time Low time Rise time Fall time tOSC t1 t2 t3 t4 SR SR SR SR SR 25 1 10 2 10 2 - - max - - - 32 32 min 12.5 52 52 - - max - - - 33 32 fCPU = fXTAL / 2 fCPU = fXTAL x F F = 2 / 2.5 / 3 / 4 / 5 / 10 min 40 x N 10 2 10 2 - - max 100 x N - - 32 32 ns ns ns ns ns Unit
Notes: 1. Theoretical minimum. The real minimum value depends on the duty cycle of the input clock signal. 25MHz is the maximum input frequency when using an external crystal oscillator. Howevwer, 40MHz can be applied with an external clock source. 2. The input clock signal must reach the defined levels VIL and VIH2.
163/186
ST10F280
Figure 79 : External Clock Drive XTAL1
t1 t3 t4
VIL t2
VIH2
tOSC 20.4.9 - Memory Cycle Variables The tables below use three variables which are derived from the BUSCONx registers and represent the special characteristics of the programmed memory cycle. The following table describes, how these variables are to be computed.
Description ALE Extension Memory Cycle Time wait states Memory Tri-state Time Symbol tA tC tF TCL x [ALECTL] 2 TCL x (15 - [MCTC]) 2 TCL x (1 - [MTTC]) Values
164/186
ST10F280
20.4.10 - Multiplexed Bus VDD = 5V 10%, VSS = 0V, TA = -40 to +125C, CL = 50pF, ALE cycle time = 6 TCL + 2tA + tC + tF (75ns at 40MHz CPU clock without wait states). Table 41 : Multiplexed Bus Characteristics
Unit ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns 165/186 Max. CPU Clock = 40MHz min. t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t22 t23 t25 t27 t38 t39 t40 CC CC CC CC CC CC CC CC CC SR SR SR SR ALE high time Address setup to ALE Address hold after ALE ALE falling edge to RD, WR (with RW-delay) ALE falling edge to RD, WR (no RW-delay) Address float after RD, WR (with RW-delay) Address float after RD, WR (no RW-delay) RD, WR low time (with RW-delay) RD, WR low time (no RW-delay) RD to valid data in (with RW-delay) RD to valid data in (no RW-delay) ALE low to valid data in Address/Unlatched CS to valid data in Data hold after RD rising edge Data float after RD Data valid to WR Data hold after WR ALE rising edge after RD, WR Address/Unlatched CS hold after RD, WR ALE falling edge to Latched CS Latched CS low to Valid Data In
1 1 1
Symbol
Parameter
Variable CPU Clock 1/2 TCL = 1 to 40MHz min. TCL - 8.5 + tA TCL - 10.5 + tA TCL - 8.5 + tA TCL - 8.5 + tA -8.5 + tA - - 2 TCL -9.5 + tC 3 TCL -9.5 + tC - - - - max. - - - - - 6 TCL + 6 - - 2 TCL - 19 + tC 3 TCL - 19 + tC 3 TCL - 19 + tA + tC 4 TCL - 28 + 2tA + tC - 2 TCL - 8.5 + tF - - - - 10 - tA 3 TCL - 19 + tC + 2tA -
max. - - - - - 6 18.5 - - 6 + tC 18.5 + tC 18.5 + tA + tC 22 + 2tA + tC - 16.5 + tF - - - - 10 - tA 18.5 + tC + 2tA -
4 + tA 2 + tA 4 + tA 4 + tA -8.5 + tA - -
1
15.5 + tC 28 + tC - - - -
SR SR CC CC CC CC CC SR
0 - 10 + tC 4 + tF 15 + tF 10 + tF -4 - tA -
0 - 2 TCL -15 + tC 2 TCL - 8.5 + tF 2 TCL -10 + tF 2 TCL -15 + tF -4 - tA -
CC
Latched CS hold after RD, WR
27 + tF
3 TCL - 10.5 + tF
ST10F280
Table 41 : Multiplexed Bus Characteristics
Unit ns ns ns ns ns ns ns ns ns ns ns ns ns Max. CPU Clock = 40MHz min. t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t54 t56 CC CC CC CC SR SR CC CC CC SR SR CC CC ALE fall. edge to RdCS, WrCS (with RW delay) ALE fall. edge to RdCS, WrCS (no RW delay) Address float after RdCS, WrCS (with RW delay) Address float after RdCS, WrCS (no RW delay) RdCS to Valid Data In (with RW delay) RdCS to Valid Data In (no RW delay) RdCS, WrCS Low Time (with RW delay) RdCS, WrCS Low Time (no RW delay) Data valid to WrCS Data hold after RdCS Data float after RdCS Address hold after RdCS, WrCS Data hold after WrCS
1 1
Symbol
Parameter
Variable CPU Clock 1/2 TCL = 1 to 40MHz min. TCL - 5.5+ tA -5.5 + tA - - - - 2 TCL - 9.5 + tC 3 TCL - 9.5 + tC 2 TCL - 15+ tC 0 - 2 TCL - 19 + tF 2 TCL - 19 + tF max. - - 0 TCL 2 TCL - 21 + tC 3 TCL - 21 + tC - - - - 2 TCL - 8.5+tF - -
max. - - 0 12.5 4 + tC 16.5 + tC - - - - 16.5 + tF - -
7 + tA -5.5 + tA - -
1
- - 15.5 + tC 28 + tC 10 + tC 0 - 6 + tF 6 + tF
Note: 1. Partially tested, guaranted by design characterization.
166/186
ST10F280
Figure 80 : External Memory Cycle : Multiplexed Bus, With / Without Read / Write Delay, Normal ALE
CLKOUT
t5
ALE
t16
t25
t6
t38
t17
t40 t39 t27
CSx
t6
A23-A16 (A15-A8) BHE
t17
Address
t27
t16
Read Cycle Address/Data Bus (P0)
t6m
Address
t7
t18
Data In Address
t8
RD
t10 t14 t12
t19
t13 t9 t11 t15
Address
Write Cycle Address/Data Bus (P0)
t23
Data Out
t8
WR WRL WRH
t22 t12 t13
t9
167/186
ST10F280
Figure 81 : External Memory Cycle: Multiplexed Mus, With / Without Read / Write Delay, Extended ALE
CLKOUT
t5
ALE
t16
t25
t6
t38 t17 t39 t27
t40
CSx
t6
A23-A16 (A15-A8) BHE
t17
Address
t27
Read Cycle Address/Data Bus (P0)
t6
Address
t7
Data In
t8 t9
RD
t10 t11 t14 t15 t12 t13
t18 t19
Write Cycle Address/Data Bus (P0)
Address
Data Out
t23 t8 t9
WR WRL WRH
t10 t11
t22
t13
t12
168/186
ST10F280
Figure 82 : External Memory Cycle: Multiplexed Bus, With / Without Read / Write Delay, Normal ALE, Read / Write Chip Select
CLKOUT
t5
ALE
t16
t25
t6
A23-A16 (A15-A8) BHE
t17
Address
t27
t16
Read Cycle Address/Data Bus (P0)
t6
Address
t7
t51
Data In Address
t42
RdCSx
t44 t46 t48
t52
t49 t43
Write Cycle Address/Data Bus (P0)
t45 t47 t56
Data Out
Address
t42
WrCSx
t50 t48 t49
t43
169/186
ST10F280
Figure 83 : External Memory Cycle: Multiplexed Bus, With / Without Read / Write Delay, Extended ALE, Read / Write Chip Select
CLKOUT
t5
ALE
t16
t25
t6
A23-A16 (A15-A8) BHE
t17
Address
t54
Read Cycle Address/Data Bus (P0)
t6
Address
t7
Data In
t42 t43
RdCSx
t44 t45 t46 t48 t47 t49
t18 t19
Write Cycle Address/Data Bus (P0)
Address
Data Out
t42 t43
WrCSx
t44 t45 t50
t56
t48 t49
170/186
ST10F280
20.4.11 - Demultiplexed Bus VDD = 5V 10%, VSS = 0V, TA = -40 to +125C, CL = 50pF, ALE cycle time = 4 TCL + 2tA + tC + tF (50ns at 40MHz CPU clock without wait states). Table 42 : Demultiplexed Bus Characteristics
Unit ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns 171/186 Maximum CPU Clock = 40MHz Minimum t5 t6 t80 CC CC CC ALE high time Address setup to ALE Address/Unlatched CS setup to RD, WR (with RW-delay) Address/Unlatched CS setup to RD, WR (no RW-delay) RD, WR low time (with RW-delay) RD, WR low time (no RW-delay) RD to valid data in (with RW-delay) RD to valid data in (no RW-delay) ALE low to valid data in Address/Unlatched CS to valid data in Data hold after RD rising edge Data float after RD rising edge 13 (with RW-delay) Data float after RD rising edge 13 (no RW-delay) Data valid to WR Data hold after WR ALE rising edge after RD, WR Address/Unlatched CS hold after RD, WR Address/Unlatched CS hold after WRH t38 t39 CC SR ALE falling edge to Latched CS Latched CS low to Valid Data In -4 - tA - 6 - tA 18.5 + tC + 2tA -4 - tA - 6 - tA 3 TCL - 19 + tC + 2tA
2
Symbol
Parameter
Variable CPU Clock 1/2 TCL = 1 to 40MHz Minimum TCL - 8.5 + tA TCL - 10.5 + tA 2 TCL - 8.5 + 2tA Maximum - - -
Maximum - - -
4 + tA 2 + tA 16.5 + 2tA
t81
CC
4 + 2tA
-
TCL - 8.5 + 2tA
-
t12 t13 t14 t15 t16 t17 t18 t20 t21 t22 t24 t26 t28
CC CC SR SR SR SR SR SR SR CC CC CC CC
15.5 + tC 28 + tC - - - - 0 - - 10 + tC 4 + tF -10 + tF 0 (no tF) -5 + tF (tF > 0) -5 + tF
- - 6 + tC 18.5 + tC 18.5 + tA + tC 22 + 2tA + tC - 16.5 + tF 4 + tF - - - -
2 TCL - 9.5 + tC 3 TCL - 9.5 + tC - - - - 0 - - 2 TCL - 15 + tC TCL - 8.5 + tF -10 + tF 0 (no tF) -5 + tF (tF > 0) -5 + tF
- - 2 TCL - 19 + tC 3 TCL - 19 + tC 3 TCL - 19 + tA + tC 4 TCL - 28 + 2tA + tC - 2 TCL - 8.5 + tF + 2tA 1 TCL - 8.5 + tF + 2tA 1 - - - -
t28h CC
-
-
ST10F280
Table 42 : Demultiplexed Bus Characteristics
Unit ns ns ns ns ns ns ns ns ns ns ns ns ns Maximum CPU Clock = 40MHz Minimum t41 t82 t83 t46 t47 t48 t49 t50 t51 t53 t68 t55 t57 CC CC CC SR SR CC CC CC SR SR SR Latched CS hold after RD, WR Address setup to RdCS, WrCS (with RW-delay) Address setup to RdCS, WrCS (no RW-delay) RdCS to Valid Data In (with RW-delay) RdCS to Valid Data In (no RW-delay) RdCS, WrCS Low Time (with RW-delay) RdCS, WrCS Low Time (no RW-delay) Data valid to WrCS Data hold after RdCS Data float after RdCS (with RW-delay) Data float after RdCS (no RW-delay) Address hold after RdCS, WrCS Data hold after WrCS
3
Symbol
Parameter
Variable CPU Clock 1/2 TCL = 1 to 40MHz Minimum TCL - 10.5 + tF 2 TCL - 10.5 + 2tA TCL - 10.5 + 2tA - - 2 TCL - 9.5 + tC 3 TCL - 9.5 + tC 2 TCL - 15 + tC 0 - - Maximum - - - 2 TCL - 21 + tC 3 TCL - 21 + tC - - - - 2 TCL - 8.5 + tF TCL - 8.5 + tF - -
Maximum - - - 4 + tC 16.5 + tC - - - - 16.5 + tF 4 + tF - -
2 + tF 14.5 + 2tA 2 + 2tA - - 15.5 + tC 28 + tC 10 + tC 0 - -
3
CC CC
-8.5 + tF 2 + tF
-8.5 + tF TCL - 10.5 + tF
Notes: 1. RW-delay and tA refer to the next following bus cycle. 2. Read data are latched with the same clock edge that triggers the address change and the rising RD edge. Therefore address changes before the end of RD have no impact on read cycles. 3. Partially tested, guaranteed by design characterization.
172/186
ST10F280
Figure 84 : External Memory Cycle: Demultiplexed Bus, With / Without Read / Write Delay, Normal ALE
CLKOUT
t5
ALE
t16
t26
t6 t38
CSx
t17 t39
t41 t41u 1)
t6
A23-A16 A15-A0 (P1) BHE
t17
Address
t28 (or t28h)
Read Cycle Data Bus (P0) (D15-D8) D7-D0
t18
Data In
t80 t81
RD
t14 t15 t21
t20
t12 t13
Write Cycle Data Bus (P0) (D15-D8) D7-D0
Data Out
t80 t81
WR WRL WRH
t22
t24
t12 t13
Note: 1. Un-latched CSx = t41u = t41 TCL =10.5 + tF.
173/186
ST10F280
Figure 85 : External Memory Cycle: Demultiplexed Bus, With / Without Read / Write Delay, Extended ALE
CLKOUT
t5
ALE
t16
t26
t6 t38 t17 t39
CSx
t41 t28
t6
A23-A16 A15-A0 (P1) BHE
t17
Address
t28
Read Cycle Data Bus (P0) (D15-D8) D7-D0
t18
Data In
t80 t81
RD
t14 t15 t21
t20
t12 t13
Write Cycle Data Bus (P0) (D15-D8) D7-D0
Data Out
t80 t81
WR WRL WRH
t22
t24
t12 t13
174/186
ST10F280
Figure 86 : External Memory Cycle: Demultiplexed Bus, With / Without Read / Write Delay, Normal ALE, Read / Write Chip Select
CLKOUT
t5
ALE
t16
t26
t6
A23-A16 A15-A0 (P1) BHE
t17
Address
t55
Read Cycle Data Bus (P0) (D15-D8) D7-D0
t51
Data In
t82 t83
RdCSx
t46 t47
t53 t68
t48 t49
Write Cycle Data Bus (P0) (D15-D8) D7-D0
Data Out
t82 t83
WrCSx
t50
t57
t48 t49
175/186
ST10F280
Figure 87 : External Memory Cycle: Demultiplexed Bus, no Read / Write Delay, Extended ALE, Read / Write Chip Select
CLKOUT
t5
ALE
t16
t26
t6
A23-A16 A15-A0 (P1) BHE
t17
Address
t55
Read Cycle Data Bus (P0) (D15-D8) D7-D0
t51
Data In
t82 t83 t47
t46 t68
t53
RdCSx
t48 t49
Write Cycle Data Bus (P0) (D15-D8) D7-D0
Data Out
t82 t83
WrCSx
t50
t57
t48 t49
176/186
ST10F280
20.4.12 - CLKOUT and READY VDD = 5V 10%, VSS = 0V, TA = -40 to +125C, CL = 50pF Table 43 : CLKOUT and READY Characteristics
Unit ns ns ns ns ns ns ns ns ns ns ns ns 177/186 Maximum CPU Clock = 40MHz Minimum t29 t30 t31 t32 t33 t34 t35 t36 t37 t58 t59 t60 CC CC CC CC CC CC SR SR SR SR CLKOUT cycle time CLKOUT high time CLKOUT low time CLKOUT rise time CLKOUT fall time CLKOUT rising edge to ALE falling edge Synchronous READY setup time to CLKOUT Synchronous READY hold time after CLKOUT Asynchronous READY low time Asynchronous READY setup time Asynchronous READY hold time
1)
Symbol
Parameter
Variable CPU Clock 1/2 TCL = 1 to 40MHz Minimum 2 TCL TCL - 8.5 TCL - 9.5 - - -2 + tA 12.5 2 2 TCL + 10 12.5 Maximum 2TCL - - 4 4 8 + tA - - - -
Maximum 25 - - 4 4 8 + tA - - - -
25 4 3 - - -2 + tA 12.5 2 35 12.5
SR
2
1)
-
2
-
SR
Async. READY hold time after RD, WR high (Demultiplexed 2) Bus)
0
0 + 2tA + tC + tF
2)
0
TCL - 12.5 + 2tA + tC + tF 2)
Notes: 1. These timings are given for test purposes only, in order to assure recognition at a specific clock edge. 2. Demultiplexed bus is the worst case. For multiplexed bus 2 TCL are to be added to the maximum values. This adds even more time for deactivating READY. The 2tA and tC refer to the next following bus cycle, tF refers to the current bus cycle.
ST10F280
Figure 88 : CLKOUT and READY
Running cycle 1) READY wait state MUX / Tri-state 6)
CLKOUT
t32 t30 t34
t33 t31 t29
ALE
7)
RD, WR
2)
Synchronous READY Asynchronous READY
t35
3)
t36
t35
3)
t36
t58
3)
t59
t58
3)
t59
t60 4)
t37
5)
6)
Notes: 1. Cycle as programmed, including MCTC wait states (Example shows 0 MCTC WS). 2. The leading edge of the respective command depends on RW-delay. 3. READY sampled HIGH at this sampling point generates a READY controlled wait state, READY sampled LOW at this sampling point terminates the currently running bus cycle. 4. READY may be deactivated in response to the trailing (rising) edge of the corresponding command (RD or WR). 5. If the Asynchronous READY signal does not fulfill the indicated setup and hold times with respect to CLKOUT (e.g. because CLKOUT is not enabled), it must fulfill t37 in order to be safely synchronized. This is guaranteed, if READY is removed in response to the command (see Note 4)). 6. Multiplexed bus modes have a MUX wait state added after a bus cycle, and an additional MTTC wait state may be inserted here. For a multiplexed bus with MTTC wait state this delay is 2 CLKOUT cycles, for a demultiplexed bus without MTTC wait state this delay is zero. 7. The next external bus cycle may start here.
178/186
ST10F280
20.4.13 - External Bus Arbitration VDD = 5V 10%, VSS = 0V, TA = -40 to +125C, CL = 50pF
Unit ns ns ns ns ns ns ns 179/186 Maximum CPU Clock = 40MHz Minimum t61 t62 t63 t64 t65 t66 t67
SR CC CC CC CC CC CC
Symbol
Parameter
Variable CPU Clock 1/2 TCL = 1 to 40MHz Minimum 15 - - - -4 - -4 Maximum - 12.5 12.5 15 15 15 15
Maximum - 12.5 12.5 15 15 15 15
HOLD input setup time to CLKOUT CLKOUT to HLDA high or BREQ low delay CLKOUT to HLDA low or BREQ high delay CSx release CSx drive Other signals release Other signals drive
1 1
15 - - - -4 - -4
Note: 1. Partially tested, guaranteed by design characterization.
Figure 89 : External Bus Arbitration, Releasing the Bus
CLKOUT
t61
HOLD
t63
HLDA
1)
t62
BREQ
2)
t64
CSx (P6.x)
1)
3)
t66
Others
Notes: 1. The ST10F280 will complete the currently running bus cycle before granting bus access. 2. This is the first possibility for BREQ to become active. 3. The CS outputs will be resistive high (pull-up) after t64.
ST10F280
Figure 90 : External Bus Arbitration, (regaining the bus)
2)
CLKOUT
t61 HOLD t62 HLDA t62 BREQ t62
1)
t63
t65 CSx (On P6.x) t67 Other Signals
Notes: 1. This is the last chance for BREQ to trigger the indicated regain-sequence. Even if BREQ is activated earlier, the regain-sequence is initiated by HOLD going high. Please note that HOLD may also be disactivated without the ST10F280 requesting the bus. 2. The next ST10F280 driven bus cycle may start here.
180/186
ST10F280
20.4.14 - High-Speed Synchronous Serial Interface (SSC) Timing 20.4.14.1 Master Mode VCC = 5V 10%, VSS = 0V, CPU clock = 40MHz, TA = -40 to +125C, CL = 50pF
Symbol Parameter Maximum Baud rate = 10M Baud Variable Baud rate ( = 0001h) (=0001h-FFFFh) Unit Minimum Maximum Minimum Maximum 100 40 40 - - - -2 37.5 100 - - 10 10 15 - - 8 TCL 262144 TCL - - 10 10 15 - - ns ns ns ns ns ns ns ns
t300 t301 t302 t303 t304 t305 t306 t307p t308p t307 t308
CC SSC clock cycle time CC SSC clock high time CC SSC clock low time CC SSC clock rise time CC SSC clock fall time CC Write data valid after shift edge CC Write data hold after shift edge 1 SR Read data setup time before latch edge, phase error detection on (SSCPEN = 1) SR Read data hold time after latch edge, phase error detection on (SSCPEN = 1) SR Read data setup time before latch edge, phase error detection off (SSCPEN = 0) SR Read data hold time after latch edge, phase error detection off (SSCPEN = 0)
t300/2 - 10 t300/2 - 10
- - - -2 2 TCL + 12.5
50
-
4 TCL
-
ns
25
-
2 TCL
-
ns
0
-
0
-
ns
Note: 1. Timing guaranteed by design.
The formula for SSC Clock Cycle time is : t300 = 4 TCL * ( + 1) Where represents the content of the SSC Baud rate register, taken as unsigned 16-bit integer. Figure 91 : SSC Master Timing
1)
t300
t301
t302
2)
SCLK
t305
MTSR
1st Out Bit
t304 t305
2nd Out Bit
t303 t306
t305
Last Out Bit
t307 t308
MRST
1st.In Bit 2nd.In Bit
t307 t308
Last.In Bit
Notes: 1. The phase and polarity of shift and latch edge of SCLK is programmable. This figure uses the leading clock edge as shift edge (drawn in bold), with latch on trailing edge (SSCPH = 0b), Idle clock line is low, leading clock edge is low-to-high transition (SSCPO = 0b). 2. The bit timing is repeated for all bits to be transmitted or received.
181/186
ST10F280
20.4.14.2 Slave mode VCC = 5V 10%, VSS = 0V, CPU clock = 40MHz, TA = -40 to +125C, CL = 50pF
Maximum Baud rate=10MBd ( = 0001h) Minimum Maximum 100 - - 10 10 39 - - - - - Variable Baud rate (=0001h-FFFFh) Minimum 8 TCL Maximum 262144 TCL - - 10 10 2 TCL + 14 - - - - - ns ns ns ns ns ns ns ns ns ns ns
Symbol
Parameter
Unit
t310 t311 t312 t313 t314 t315 t316 t317p t318p1 t317 t318
SR SSC clock cycle time SR SSC clock high time SR SSC clock low time SR SSC clock rise time SR SSC clock fall time CC Write data valid after shift edge CC Write data hold after shift edge SR Read data setup time before latch edge, phase error detection on (SSCPEN = 1) SR Read data hold time after latch edge, phase error detection on (SSCPEN = 1) SR Read data setup time before latch edge, phase error detection off (SSCPEN = 0) SR Read data hold time after latch edge, phase error detection off (SSCPEN = 0)
100 40 40 - - - 0 62 87 6 31
t310/2 - 10 t310/2 - 10
- - - 0 4 TCL + 12 6 TCL + 12 6 2 TCL + 6
The formula for SSC Clock Cycle time is: t310 = 4 TCL * ( + 1) Where represents the content of the SSC Baud rate register, taken as unsigned 16-bit integer. Figure 92 : SSC Slave Timing
1)
t310
t311
t312
2)
SCLK
t314 t315
MRST
1st Out Bit
t313 t316
2nd Out Bit
t315
t315
Last Out Bit
t317 t318
MTSR
1st.In Bit 2nd.In Bit
t317 t318
Last.In Bit
Notes: 1. The phase and polarity of shift and latch edge of SCLK is programmable. This figure uses the leading clock edge as shift edge (drawn in bold), with latch on trailing edge (SSCPH = 0b), Idle clock line is low, leading clock edge is low-to-high transition (SSCPO = 0b). 2. The bit timing is repeated for all bits to be transmitted or received.
182/186
ST10F280
21 - PACKAGE MECHANICAL DATA Figure 93 : Package Outline PBGA 208 (23 x 23 x 1.96 mm)
SEATING PLANE C A2 A3 D D1 e f f U T R P N M L K J H G F E D C B A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 A1 BALL PAD CORNER 2 b (208 + 25 BALLS) e E1 E A1 A 000 C
Millimeters Dimensions Minimum A A1 A2 A3 b D D1 E E1 e f aaa 1.240 22.900 0.600 22.900 0.500 Typical 1.960 0.600 1.360 0.560 0.760 23.000 20.320 23.000 20.320 1.270 1.340 1.440 0.150 0.049 23.100 0.902 0.900 23.100 0.024 0.902 0.700 0.019 Maximum Minimum
Inches (approx) Typical 0.077 0.024 0.054 0.022 0.030 0.906 0.800 0.906 0.800 0.50 0.053 0.057 0.006 183/186 0.909 0.035 0.909 0.028 Maximum
ST10F280
Notes: 1. PBGA stands for Plastic Ball Grid Array. 2. The terminal A1 corner must be identified on the top surface of the package by using a corner chamfer, ink or metalized markings, identation or other feature of package body or integral heastslug. A distinguishing feature is allowable on the bottom of the package to identify the terminal A1 corner. Exact shape and size of this feature is optional. 22 - ORDERING INFORMATION
Salestype ST10F280-JT3 Temperature range -40C to +125C Package PBGA 208 (23 x 23 x 1.96 mm)
184/186
ST10F280
185/186
ST10F280
Information furnished is believed to be accurate and reliable. However, STMicroelectronics assumes no responsibility for the consequences of use of such information nor for any infringement of patents or other rights of third parties which may result from its use. No license is granted by implication or otherwise under any patent or patent rights of STMicroelectronics. Specifications mentioned in this publication are subject to change without notice. This publication supersedes and replaces all information previously supplied. STMicroelectronics products are not authorized for use as critical components in life support devices or systems without express written approval of STMicroelectronics. The ST logo is a registered trademark of STMicroelectronics (c) 2003 STMicroelectronics All Rights Reserved STMicroelectronics GROUP OF COMPANIES Australia - Brazil - Canada - China - Finland - France - Germany - Hong Kong - India - Israel - Italy - Japan - Malaysia - Malta - Morocco Singapore - Spain - Sweden - Switzerland - United Kingdom - United States http://www.st.com
ST10F280.REF
186/186


▲Up To Search▲   

 
Price & Availability of ST10F280

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X